Pos - ele só retorna a posição de uma palavra?

24/09/2004

Bom tenho o seguinte problema digitei os comandos abaixo para que ele me disse-se a posição que esta a palavra na frase, então localizando a posição ele copiaria o erro inteiro para um memo.

procedure TF_PesErroCli.SpeedButton1Click(Sender: TObject);
Var
posicao:Integer;
copia,pa: String;
begin

DM.ADOT_Cad_Rel.First;
if not DM.ADOT_Cad_Rel.Eof then
repeat
posicao := pos(Edit1.Text,DM.ADOT_Cad_RelERRO.Value);
If posicao > 0 then
Begin
Memo1.Lines.Add(DM.ADOT_Cad_RelERRO);
showmessage(inttostr(posicao));
End;
DM.ADOT_Cad_Rel.Next
until DM.ADOT_Cad_Rel.Eof;
end;

Será que alguem pode me dar uma força
Agradeço desde já!!!


Fábio Feltrin

Respostas

24/09/2004

Fábio Feltrin

Traduzindo o erro acima é que ele localiza apenas a posição de uma letra por exemplo, eu digitp By no edit e ele não localiza, agora se eu digitar b ele localiza todos os b da tabela.


Responder Citar

24/09/2004

Lucas Silva

[quote:718c64225e=´Fábio Feltrin´] By no edit e ele não localiza, agora se eu digitar b ele localiza todos os b da tabela.[/quote:718c64225e]

.... Qual é o texto do memo??
Parece que não existe este texo ´by´ no memo´!


Responder Citar

24/09/2004

Pehdepano

O comando pos() não retorna uma palavra. Ele retorna a posição da primeira letra da primeira palavra encontrada;

ex: pos(´By´, ´abcde/e*f/by/allll´); {retorna 11}


procedure TF_PesErroCli.SpeedButton1Click(Sender: TObject);
Var
posicao:Integer;
copia, pa: String;
begin

DM.ADOT_Cad_Rel.First;

while not DM.ADOT_Cad_Rel.Eof then
begin
posicao := pos(Edit1.Text,DM.ADOT_Cad_RelERRO.Value);

If posicao > 0 then
Begin
Memo1.Lines.Add(DM.ADOT_Cad_RelERRO);
showmessage(copy(DM.ADOT_Cad_RelERRO.AsString, posicao, lenght(Edit1.text));
End;
DM.ADOT_Cad_Rel.Next ;
end;

end;


Responder Citar

24/09/2004

Fábio Feltrin

blz este caso ja foi resolvido, obrigrado pela sua atenção pessoal vlw mesmo agente se fala !!!!


Responder Citar