Ajuda para conversão de pequena função Delphi para Java

3 respostas
L

Olá galera, eu tô com a seguinte função no Delphi;

function VerificaComando(Recebido, Comando: String; Parcial: boolean): Boolean; begin recebido:= AnsiLowerCase(trim(recebido)); comando:= AnsiLowerCase(trim(comando)); if not Parcial then result:= AnsiSameText(recebido, comando) else result:= pos(comando, recebido) <> 0; end;

E preciso converter essa função para o Java, a minha maior dificuldade tá na função pos() do Delphi. Alguém consegue me ajudar a converter essa função?

Desde já agradeço e qualquer ajuda será bemvinda,
abraços à todos.

3 Respostas

jamirdeajr

Olá Leogazio,

Creio que você possa converter a função pos pelo método indexof, só que o retorno 0 aqui corresponde a primeira posição, já em delphi a primeira posição é 1…
Exemplo:

if(recebido.indexof(comando) != -1) { return true; }
ou mais direto

return (recebido.indexof(comando) != -1);

Boa sorte!

L

Pô valeu Jamir. Cara sua ajuda foi batata aqui, agora só ficaram mesmo a função copy() e o procedure delete(), nessa função abaixo tem os dois;

function ReceiveMsg(Received: String): String;
var
  i: integer;
  de, para, aux: ShortString;
  msg: String;
begin
  i:= pos('=',Received);
  aux:= copy(Received,i+1,length(Received));

  i:= pos('#',aux);
  de:= copy(aux,1,i-1);
  delete(aux,1,i);

  i:= pos('#',aux);
  para:= copy(aux,1,i-1);
  delete(aux,1,i);
  msg:= aux;

  if (para = Form1.lbEdtNick.Text) and (trim(msg) = 'atencao') then
  begin
      SndPlaySound('ding.wav', snd_ASync);
      result:= de + ' está chamando sua atenção!!!';
  end
  else
      result:= de + ' fala com ' + para + ': ' + msg;
end;

Eu já revisei o código todo no projeto no Delphi e só restaram mesmo o Copy e o Delete, se você ou alguém puder me ajudar com mais essa eu agradeço muita coisa, abraços.

G
leogazio:
Pô valeu Jamir. Cara sua ajuda foi batata aqui, agora só ficaram mesmo a função copy() e o procedure delete(), nessa função abaixo tem os dois;
function ReceiveMsg(Received: String): String;
var
  i: integer;
  de, para, aux: ShortString;
  msg: String;
begin
  i:= pos('=',Received);
  aux:= copy(Received,i+1,length(Received));

  i:= pos('#',aux);
  de:= copy(aux,1,i-1);
  delete(aux,1,i);

  i:= pos('#',aux);
  para:= copy(aux,1,i-1);
  delete(aux,1,i);
  msg:= aux;

  if (para = Form1.lbEdtNick.Text) and (trim(msg) = 'atencao') then
  begin
      SndPlaySound('ding.wav', snd_ASync);
      result:= de + ' está chamando sua atenção!!!';
  end
  else
      result:= de + ' fala com ' + para + ': ' + msg;
end;

Eu já revisei o código todo no projeto no Delphi e só restaram mesmo o Copy e o Delete, se você ou alguém puder me ajudar com mais essa eu agradeço muita coisa, abraços.

private String ReceiveMsg(String received){  
		int i = received.indexOf('=');  
		String aux = received.substring(i+1);
		 
		i = aux.indexOf('#');  
		
		String de = aux.substring(0, i-1);		
		aux = aux.substring(i + 1);  
		
		i = aux.indexOf('#');
		String para = aux.substring(0, i-1);  
		aux = aux.substring(i + 1);
		
		String msg = aux;  
		  
		if (para.equals(Form1.lbEdtNick.Text) & msg.trim().equals("atencao")) {
		     	SndPlaySound("ding.wav", snd_ASync);  
		     	return de + " está chamando sua atenção!!!";
		} else { 
		      return de + " fala com " + para + ": " + msg;
		}
	}
Criado 24 de agosto de 2012
Ultima resposta 25 de ago. de 2012
Respostas 3
Participantes 3