Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lívio Bruno

Copia de string

Recommended Posts

Olá amigos! Estou precisando fazer uma copia de string do tipo:

 

Tenho um TMemo com várias linhas escritas e com vários emails escritos nele. Então preciso copiar somente os emails contidos nas linhas desse TMemo. Lembrando que os emails estão escritos entre aspas duplas mas existem outras palavras escritas entre aspas duplas também:

 

Exemplo:

 

Linha 1 do TMemo: /1976";;;;;;"livio.sa@gmail.com";"SMTP";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"livio.sa1@gmail.com";

Linha 2 do TMemo: 1980";;;;;;"livio.sa@gmail.com";"SMTP";;;;;;;;;;;;;"livio.sa1@gmail.com";

 

Quero extrair cada email dessas linhas e copiar eles linha por linha no mesmo TMemo ou seja um email por linha.

Li alguma coisa sobre copy e pos mas não consegui desenvolver.

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá amigos! Estou precisando fazer uma copia de string do tipo:

 

Tenho um TMemo com várias linhas escritas e com vários emails escritos nele. Então preciso copiar somente os emails contidos nas linhas desse TMemo. Lembrando que os emails estão escritos entre aspas duplas mas existem outras palavras escritas entre aspas duplas também:

 

Exemplo:

 

Linha 1 do TMemo: /1976";;;;;;"livio.sa@gmail.com";"SMTP";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"livio.sa1@gmail.com";

Linha 2 do TMemo: 1980";;;;;;"livio.sa@gmail.com";"SMTP";;;;;;;;;;;;;"livio.sa1@gmail.com";

 

Quero extrair cada email dessas linhas e copiar eles linha por linha no mesmo TMemo ou seja um email por linha.

Li alguma coisa sobre copy e pos mas não consegui desenvolver.

 

Desde já agradeço.

Cara eu acredito que com Regular Expression você consiga fazer isso, teria como você criar o padrão de um email e procurar e extrair de dentro de um texto.

 

Neste endereço tem informações sobre Regular Expression http://www.regular-expressions.info/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Se o padrão for exatamente o que você enviou, tente algo assim:

 

 

 
var
  i: integer;
  s1, s2, s3: string;
begin
  for i := 0 to Pred( Memo1.Lines.Count ) do
  begin
    s1 := Memo1.Lines.Strings[i];
    s1 := Copy( s1, Pos('"', s1), Length( s1 ) );
    s1 := StringReplace( s1, ';', '', [rfReplaceAll] );
    s1 := StringReplace( s1, '"', '', [rfReplaceAll] );
    s1 := StringReplace( s1, 'SMTP', '|', [rfReplaceAll] );
    s2 := Copy( s1, 1, Pos('|', s1)-1 );
    s3 := Copy( s1, Pos('|', s1)+1, 100 );
  end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.