Pegar o que tiver depois de uma string

Delphi

16/03/2012

Bom dia...

Gostaria de pegar o texto em um Memo, de tudo o que estiver escrito após a palavra Chave, exemplo:

Chave texto <- texto
texto texto Chave teste <- teste

se alguém tiver a solução, fico grato.

Deus abençoe!
Cristiano

Cristiano

Curtidas 0

Respostas

Bruno Leandro

Bruno Leandro

16/03/2012

tenta assim

var
i:integer;
varString: string;
begin
i := pos(palavrachave,memo.text)
varString := copy(memo.text,i+length(palavrachave),length(memo.text));
end;
GOSTEI 0
Cristiano

Cristiano

16/03/2012

Funcionou cara, porém..... se tiver mais linhas abaixo ele pega todo o resto, e seria só na linha em que a palavrachave está.
Alguma solução??

obrigado.
GOSTEI 0
Bruno Leandro

Bruno Leandro

16/03/2012

voce pode ter a palavra chave em mais de uma linha?
GOSTEI 0
Bruno Leandro

Bruno Leandro

16/03/2012



var
i, j: Integer;
begin
for i := 0 to Memo1.Lines.Count - 1 do
begin
j := pos(palavrachave,Memo1.Lines[i]);

if j > 0 then
begin
varString := copy(Memo1.Lines[i],i+length(palavrachave),length(Memo1.Lines[i]));
ShowMessage([aspas]achou na linha [aspas] + inttostr(i+1) + [aspas] na posição [aspas] inttostr(j));
end;
end
GOSTEI 0
Bruno Leandro

Bruno Leandro

16/03/2012

desta forma a variavel varString deve ser processada toda as vezes que forem encontradas pois se achar mais de uma vez ela será atualizada

var
i, j: Integer;
varString :string;
begin
for i := 0 to Memo1.Lines.Count - 1 do
begin
j := pos(palavrachave,Memo1.Lines[i]);

if j > 0 then
begin
varString := copy(Memo1.Lines[i],j+length(palavrachave),length(Memo1.Lines[i]));
ShowMessage([aspas]achou na linha [aspas] + inttostr(i+1) + [aspas] na posição [aspas] inttostr(j));
end;
end
GOSTEI 0
Cristiano

Cristiano

16/03/2012

entendi... funcionou certinho aqui.
não há necessidade do usuario digitar a palavrachave mais de uma vez, mas é melhor eu tratar isso!
obrigado!

E aproveitando que estou aqui, se não for abusar da sua boa vontade, eu preciso de outro codigo, seria alterar as posições de certas palavras.

palavra1, palavra2 chave

teria que ficar assim:

chave palavra1, palavra2

se for possivel... agradeço. Muuito obrigado maninho!!!
GOSTEI 0
Bruno Leandro

Bruno Leandro

16/03/2012

pra substituir poderia tentar desta forma

Memo1.text := StringReplace(Memo1.text,Palavra1,Palavra2,[rfReplaceAll, rfIgnoreCase]);
GOSTEI 0
POSTAR