Separar informações de um texto padrão
Boa tarde.
Preciso de um auxílio.
Vou criar uma projeto novo em delphi e não estou conseguindo
chegar a uma rotina que faça o que eu preciso.
Seguinte...tenho um texto padrão
Exemplo de texto:
Demonstração para Cliente Prospect (Sem Instalação) no dia:
16/03/2016 - Horário: 15:00 - Falar com: Fulano de Tal -
Empresa: EMPRESA XYZ - Telefone: (41) 3333-4455 - Vendedor:
Vendedor A;
A partir deste texto, queria colá-lo em um memo, por exemplo
e extrair o nome do contato "Fulano De Tal", depois o nome
da empresa "EMPRESA XYZ" e depois o Telefone de Contato
"(41) 3333-4455".
Se observarem estes dados sempre estarão separados por : +
espaço + informação a ser capturada + espaço traço(-).
Preciso justamente achar na descrição a informação "Falar
com:" e capturar a proxima string. O mesmo vale para as
demais informações.
Como posso proceder?
Alguem pode me ajudar com o código fonte?
Preciso de um auxílio.
Vou criar uma projeto novo em delphi e não estou conseguindo
chegar a uma rotina que faça o que eu preciso.
Seguinte...tenho um texto padrão
Exemplo de texto:
Demonstração para Cliente Prospect (Sem Instalação) no dia:
16/03/2016 - Horário: 15:00 - Falar com: Fulano de Tal -
Empresa: EMPRESA XYZ - Telefone: (41) 3333-4455 - Vendedor:
Vendedor A;
A partir deste texto, queria colá-lo em um memo, por exemplo
e extrair o nome do contato "Fulano De Tal", depois o nome
da empresa "EMPRESA XYZ" e depois o Telefone de Contato
"(41) 3333-4455".
Se observarem estes dados sempre estarão separados por : +
espaço + informação a ser capturada + espaço traço(-).
Preciso justamente achar na descrição a informação "Falar
com:" e capturar a proxima string. O mesmo vale para as
demais informações.
Como posso proceder?
Alguem pode me ajudar com o código fonte?
Fábio Sela
Curtidas 0
Respostas
Gilberto Moura
16/03/2016
....
GOSTEI 0
Marco Antônio
16/03/2016
Fábio bom dia, a idéia é a mesma do outro post que você questionou sobre 'LOCALIZAR STRING EM ARQUIVO TXT E COPIAR TEXTO APÓS TEXTO'.
Ao invés de colocar no memo vc colocaria em uma 'TStringList' e através do loop com a função pos() você extrai o texto desejado. Lembrando que você tem que copiar até o primeiro '-'( hifém).
Mais ou menos seria assim:
var
xxTexto : string;
xxContato : string;
xxEmpresa : string;
xxTelefone : string;
i: Integer;
y : integer;
Lista: TStringList;
begin
xxContato := '';
xxEmpresa := '';
xxTelefone := '';
Try
Lista := TStringList.Create;
if FileExists(Edit1.Text) then
begin
Lista.LoadFromFile(Edit1.Text);
for i := 0 to Lista.Count - 1 do
begin
xxTexto := Lista[i];
if pos('Falar com:', xxTexto ) > 0 then
begin
xxTexto := copy( xxTexto , pos('Falar com:', xxTexto ) + 10 , length( xxTexto ) );
for y := 1 to length( xxTexto ) do
begin
if xxTexto[ y ] = '-' then break;
xxContato := xxContato + xxTexto[ y ];
end;
end;
if pos('Empresa:', xxTexto ) > 0 then
begin
xxTexto := copy( xxTexto , pos('Empresa:', xxTexto ) + 8 , length( xxTexto ) );
for y := 1 to length( xxTexto ) do
begin
if xxTexto[ y ] = '-' then break;
xxEmpresa := xxEmpresa + xxTexto[ y ];
end;
end;
if pos('Telefone:', xxTexto ) > 0 then
begin
xxTexto := copy( xxTexto , pos('Telefone:', xxTexto ) + 9 , length( xxTexto ) );
for y := 1 to length( xxTexto ) do
begin
if xxTexto[ y ] = '-' then break;
xxTelefone := xxTelefone + xxTexto[ y ];
end;
end;
end;
end;
Finally
Lista.Free;
End;
end;
ShowMessage( 'Capturei contato: ' + xxContato );
ShowMessage( 'Capturei empresa: ' + xxEmpresa );
ShowMessage( 'Capturei telefone: ' + xxTelefone );
créditos à: https://www.devmedia.com.br/forum/localizar-string-em-arquivo-txt-e-copiar-texto-apos-texto/547588
Abc.GOSTEI 0
Fábio Sela
16/03/2016
Obrigado, vou testar aqui.
GOSTEI 0