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:
Abcdefgh
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

Lucas Bernieri

Responder

Posts

24/12/2019

Lucas Bernieri

Consegui criar um código.

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar