Fórum Separar Texto de RichEdit em Vários Arquivos .txt #607153
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)