ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Substituir várias palavras de um arquivo .txt

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
mfrigerio
Novato
Novato


Registrado: Quinta-Feira, 3 de Setembro de 2015
Mensagens: 19

MensagemEnviada: Ter Nov 22, 2022 3:20 pm    Assunto: Substituir várias palavras de um arquivo .txt Responder com Citação

Boa tarde !!!
Meu cenário é o seguinte , tenho um txt (em formato exportado para ser utilizado na impressora zebra)
e tem alguns caracteres especiais dentro dele ... e por isso não carrega total , .

Teria como fazer uma rotina assim.
1) abrir arquivo txt Origem
2) substituir varias palavras dentro desse txt
3) Salvar esse arquivo com outro nome.

segue o que estou tentando fazer .

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
    Arq : TStringList ;
const
   ARQUIVO = 'C:\TEMP\00000-FF_Etiqueta_Resfriada.PRN';
   ARQDEST = 'C:\TEMP\PRINT.PRN';
begin
    Arq := TStringList.Create;
 
    try
          Arq.LoadFromFile(ARQUIVO);
          Arq.Text := StringReplace(Arq.Text,'[VAR_DESCRICAO_PRODUTO]','"PEIXE RESFRIADO - FILÉ DE TILAPIA SEM PELE"', [rfreplaceAll]);
          Arq.Text := StringReplace(Arq.Text,'[VAR_PESO_LIQUIDO]','"15,000"', [rfreplaceAll]);
          Arq.Text := StringReplace(Arq.Text,'[VAR_PESO_BRUTO]','"15,060"', [rfreplaceAll]);
          Arq.Text := StringReplace(Arq.Text,'[VAR_DT_FABRICACAO]','"24/10/2022"', [rfreplaceAll]);
          Arq.Text := StringReplace(Arq.Text,'[VAR_NUM_LOTE]','"000164"', [rfreplaceAll]);
          Arq.Text := StringReplace(Arq.Text,'[VAR_DT_VALIDADE]','"10/10/2025"', [rfreplaceAll]);
          Arq.Text := StringReplace(Arq.Text,'[VAR_SISP]','"1694/00101"', [rfreplaceAll]);
          Arq.Text := StringReplace(Arq.Text,'[VAR_CODIGO_PRODUTO]','"123456789147852369"', [rfreplaceAll]);
 
    finally
          Arq.SaveToFile(ARQDEST);
          Arq.Free;
 
    end;
    close;
end;




porém também não esta dando certo, porque na propriedade Arq.Text , ele não carrega tudo , apenas parte do txt , igualzinho ocorreco com o componente Tmemo.
não aquei onde colocar esse arquivo txt em anexo aqui ... mas vou colocar ele abaixo.

[url]
https://drive.google.com/file/d/1y92DynhiEGG-KdoXhK8z1ve9IQr4Tbl9/view?usp=share_link
[/url]

se puderem me ajudar , eu antecipo cordial agradecimento.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qua Nov 23, 2022 10:41 am    Assunto: Responder com Citação

tenta com TextFile, ou com TFileStream
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mfrigerio
Novato
Novato


Registrado: Quinta-Feira, 3 de Setembro de 2015
Mensagens: 19

MensagemEnviada: Qua Nov 23, 2022 11:13 am    Assunto: Responder com Citação

joemil escreveu:
tenta com TextFile, ou com TFileStream


Olá amigo Joemil.
Muito obrigado por responder ....
Mas sou iniciante em estudo de delphi, esse ai acima , tentei adaptar de outros artigos que lí na internet ....
seria possivel me passar um exemplo por favor.

antecipo cordial agradecimento.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Sex Nov 25, 2022 8:44 am    Assunto: Responder com Citação

faz um teste:

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
    Arq1, Arq2: TextFile;
   t: String;
const
   ARQUIVO = 'C:\TEMP\00000-FF_Etiqueta_Resfriada.PRN';
   ARQDEST = 'C:\TEMP\PRINT.PRN';
begin
    Assign(Arq1, Arquivo);
   Reset(Arq1);
    Assign(Arq2, ArqDest);
   Rewrite(Arq2);
   repeat

     ReadLn(t, Arq1);

     t := StringReplace(t, '[VAR_DESCRICAO_PRODUTO]','"PEIXE RESFRIADO - FILÉ DE TILAPIA SEM PELE"', [rfreplaceAll]);
     t := StringReplace(t,'[VAR_PESO_LIQUIDO]','"15,000"', [rfreplaceAll]);
     ...

     WriteLn(Arq2, t);

   until Eof(Arq1);

   CloseFile(Arq1);
   CloseFile(Arq2);
end;

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mfrigerio
Novato
Novato


Registrado: Quinta-Feira, 3 de Setembro de 2015
Mensagens: 19

MensagemEnviada: Sex Dez 02, 2022 7:23 am    Assunto: [RESOLVIDO] Substituir várias palavras de um arquivo .txt Responder com Citação

Bom Dia ... Excelente Joemil ...

Fiz aqui e adaptei .. deu certo ...

Agradeço grandemente pela disposição e ajuda prestada ...

Abraços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB