Como localizar e copiar uma string em um memo?
Boa noite amigos,
Primeiramente gostaria de agradecer a todos os amigos que tem me ajudado com os meus probleminhas, mas estou com outro probleminha: Tenho uma aplicação em delphi 7 que carrega um arquivo txt (LoadFromFile(´C:\log.txt´) em um memo, agora preciso localizar no memo algumas strings, Ex: No memo tenho os seguintes dados:
Código: 2323
Filial: 002
NomeFilial: Caxangá
Nome: Carlos Henrique Barbosa
Plano: ADMED
Valor: R$125,00
Dependentes: SIM
Gostaria que em um edit eu colocasse o código: 2323 e no clique de um botão o sistema localizasse no memo o código 2323 e copiasse apenas o Nome, Plano, Valor e Dependentes para outro memo.
P.S. Nem sempre os dados estão na mesma linha do memo, as vezes começa na string[22], as vezes na string[35] depende muito do que tem escrito acima destes dados.
Obrigado.
Primeiramente gostaria de agradecer a todos os amigos que tem me ajudado com os meus probleminhas, mas estou com outro probleminha: Tenho uma aplicação em delphi 7 que carrega um arquivo txt (LoadFromFile(´C:\log.txt´) em um memo, agora preciso localizar no memo algumas strings, Ex: No memo tenho os seguintes dados:
Código: 2323
Filial: 002
NomeFilial: Caxangá
Nome: Carlos Henrique Barbosa
Plano: ADMED
Valor: R$125,00
Dependentes: SIM
Gostaria que em um edit eu colocasse o código: 2323 e no clique de um botão o sistema localizasse no memo o código 2323 e copiasse apenas o Nome, Plano, Valor e Dependentes para outro memo.
P.S. Nem sempre os dados estão na mesma linha do memo, as vezes começa na string[22], as vezes na string[35] depende muito do que tem escrito acima destes dados.
Obrigado.
Leandrosl2
Curtidas 0
Respostas
Antoniologica
05/05/2005
function TForm1.PegaValor(Valor: String): String; var P, I: Integer; S: string; begin for I := 0 to Memo1.Lines.Count - 1 do begin S := Memo1.Lines[I]; P := AnsiPos(´:´, S); if (P <> 0) and (AnsiCompareText(Copy(S, 1, P - 1), Valor) = 0) then begin Result := Trim(Copy(Memo1.Lines[I], Length(Valor) + 2, MaxInt)); exit; end; end; Result:= ´´; end;
Depois é só chamar a procedure assim:
Edit1.text:= PegaValor(´Código´);
GOSTEI 0
Marcelo Saviski
05/05/2005
ou tb poderia ser:
with Memo1.Lines do begin NameValueSeparator := ´:´; ShowMessage(Values[´Plano´]); end;
GOSTEI 0