Separar Texto de RichEdit em Vários Arquivos .txt
23/12/2019
0
Olá,
Estou com dificuldades de montar um código para separar o texto de um RichEdit em vários arquivos .txt a partir de um determinado texto em uma linha usado como separador.
Tentei usar vários códigos como: ExtractStrings e Copy/Pos, porém não consegui adaptar ao meu uso.
Exemplo:
Nesse caso serão 3 arquivos .txt gerados na mesmo diretório do aplicativo (arquivo01.txt, arquivo02.txt, arquivo03.txt).
O [Separador] será o valor inserido em uma Edit.
Como faço? Qual função utilizar?
Estou com dificuldades de montar um código para separar o texto de um RichEdit em vários arquivos .txt a partir de um determinado texto em uma linha usado como separador.
Tentei usar vários códigos como: ExtractStrings e Copy/Pos, porém não consegui adaptar ao meu uso.
Exemplo:
Abcdefgh
123456
Hello World
[Separador]
Texto 1
Texto 2
[Separador]
Xyz
Abc
123456
Hello World
[Separador]
Texto 1
Texto 2
[Separador]
Xyz
Abc
Nesse caso serão 3 arquivos .txt gerados na mesmo diretório do aplicativo (arquivo01.txt, arquivo02.txt, arquivo03.txt).
O [Separador] será o valor inserido em uma Edit.
Como faço? Qual função utilizar?
Lucas Bernieri
Curtir tópico
+ 0
Responder
Posts
24/12/2019
Lucas Bernieri
Consegui criar um código.
Porém, estou com um problema:
Se não houver separador na última linha são criados só 2 arquivos (conforme o exemplo da pergunta).
Como posso solucionar esse problema?
procedure TFrmMain.BtnSepararTXTClick(Sender: TObject); var i, num : integer; begin // Começa a numeração do arquivo em zero num := 0; // Analisa todas as linhas do memo for i := 0 to RichEdit.Lines.Count-1 do begin // Se o conteudo da linha for diferente do separador entao if RichEdit.Lines[i] <> EdtSeparador.Text then begin // Adiciona o conteudo da linha no Memo RichEditArquivo.Lines.Add(RichEdit.Lines[i]); end else begin Num := Num+1; // Atualiza a numeracao do arquivo RichEditArquivo.Lines.SaveToFile(EdtDiretorio.Text + EdtPrefixoArquivo.Text + IntToStr(num) + '.txt'); // Salva o conteudo do Memo no arquivo RichEditArquivo.Lines.Clear; // Limpa o RichEditArquivo end; end; end;
Porém, estou com um problema:
Se não houver separador na última linha são criados só 2 arquivos (conforme o exemplo da pergunta).
Como posso solucionar esse problema?
Responder
Clique aqui para fazer login e interagir na Comunidade :)