Fórum Pegar o que tiver depois de uma string #414171

16/03/2012

0

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

Responder

Posts

16/03/2012

Bruno Leandro

tenta assim

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

Gostei + 0

16/03/2012

Cristiano

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.
Responder

Gostei + 0

16/03/2012

Bruno Leandro

voce pode ter a palavra chave em mais de uma linha?
Responder

Gostei + 0

16/03/2012

Bruno Leandro



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
Responder

Gostei + 0

16/03/2012

Bruno Leandro

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
Responder

Gostei + 0

16/03/2012

Cristiano

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!!!
Responder

Gostei + 0

16/03/2012

Bruno Leandro

pra substituir poderia tentar desta forma

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

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar