Ir para conteúdo

POWERED BY:

Arquivado

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

vivianmagalhaes

[Resolvido] Quebra de Linha em Memo ao encontrar caracteres

Recommended Posts

Pessoal, sou iniciante em Delphi 7 e montei o seguinte:

 

Um form com dois Memo e um botão onde Memo1 é onde vou colar o meu texto, exemplo: email1@exemplo.com.br;, email2@exemplo2.com;;;; email@exemplo.com ;;; email@emailteste.com e assim por diante

 

e ao clicar no botão o Memo2 ficaria assim:

 

email1@exemplo.com.br

email2@exemplo2.com

email@exemplo.com

email@emailteste.com

 

Como faço para dar essa quebra de linha toda vez que o texto tiver ; ou ,?? Por favor, me ajudem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Vivian!!

Tenta o seguinte:

 

- Coloca no evento OnClick do botão, o seguinte código:

 

procedure TForm1.bt1Click(Sender: TObject);
var
  str1, str2 : String;
begin
  memo2.Clear; //Limpa o memo q receberá as strings
  str1 := memo1.Text; //Guarda em uma string temporária, o texto do memo1

  while Length(str1) <> 0 do //Enquanto houver caracteres na str1, fica no laço
  begin
      str2 := Fetch(str1,';'); //str2 recebe o texto até o ";", "eliminando" o mesmo da str1
      str2 := Trim(str2); //Trim() retira da str2 os espaços em branco e as quebras de linha.
      if Length(str2) > 0 then
          memo2.Lines.Add(str2); //Caso haja algum caracter na str2, insere no memo2
  end;
end;

Tenta fazer isso, ve o que acontece e fala se era isso q você estava pensando...

Qualquer dúvida, dá um toque ok?!?!?

 

OBS.: Para usar a função Fetch, adicione a Unit IdGlobal no "uses" na sua unit.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você também pode tentar utilizar esta função:

 

procedure quebrarLinhasMemo(Memo: TMemo; separador: char);
var
	Cont : Integer;
	NMemoText: AnsiString;
begin
	//inicializa as variáveis
	NMemoText := '';
	for Cont := 1 to Length(Memo.Text) do
	begin
		//coloca o caracter atual na strng NMemoText (mesmo que seja o caractere separador)
		NMemoText := NMemoText + Memo.Text[Cont];
		//verifica se é o caractere separador
 	if (Memo.Text[Cont] = separador) then
 		//adiciona um qubra linha ao texto (line feed + carriage return)
	 	NMemoText := NMemoText + Char(10)+Char(13); //pode ser assim também: NMemoText := NMemoText + #13#10;
	end;
	//adiciona o texto com as quebras de linha(NMemoText) ao memo passado por parametro
	Memo.Text := NMemoText;

end;

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehe, valeu ai pessoal pela solução.

 

:D

 

O tópico pode deixar que eu concluo (coloco "resolvido")

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.