Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2518 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

ola podem me dar uma dica, estou precisando fazer um arquivo txt

DESSE FORMATO tem algum componente da acbr que faz isso exemplo

A;12024;389141;FULANO ;RUA TESTE;S/N;CIDADE TESTE;(77)9999-9999;
B;12024;389141;2113060;MSL;3;20160610;20160910;2500;
B;12024;389141;2029462;MSL;9;20151214;20160915;2500;
B;12024;389141;2029463;MSL;9;20151214;20160915;2500;
B;12024;389141;2029464;OBT;9;20151214;20160915;2500;
B;12024;389141;2029465;ALG;9;20151214;20160915;2500;

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia!

não mas é super simples de fazer !

exemplo usa uma TStringList e passa o delimitador e manda salvar !

ou um TStringBuilder também.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Use este procedimento para leitura :

procedure Split(const Delimiter: Char; Value: string; const Strings: TStrings) ;
begin
Assert(Assigned(Strings)) ;
Strings.Clear ;
Strings.Delimiter       := Delimiter ;
Strings.StrictDelimiter := True ;
Strings.DelimitedText   := Value ;
end;

 

Exemplo de Uso :

  procedure Cadastra_COOs ;
    var Arquivo_COO      : TStrings ;
        Data_Doc         : String ;
        ECF_Modelo       : String ;
        ECF_Numero_Serie : String ;
        ECF_Numero       : String ;
        Numero_Pdv       : String ;
        COO              : String ;
        Valor            : String ;
  begin
  Arquivo_COO:=TStringList.create ;
  Arquivo_COO.Clear ;
  try
  Split(';' , 'B;12024;389141;2029465;ALG;9;20151214;20160915;2500' , Arquivo_COO) ; // Delimeter pode ser '|' ou outro utilizado no seu arquivo

  Data_Doc         := Arquivo_COO.Strings[0]  ;
  ECF_Modelo       := Arquivo_COO.Strings[1] ;
  ECF_Numero_Serie := Arquivo_COO.Strings[2] ;
  ECF_Numero       := Arquivo_COO.Strings[3] ;
  Numero_Pdv       := Arquivo_COO.Strings[4] ;
  COO              := Arquivo_COO.Strings[5] ;
  Valor            := Arquivo_COO.Strings[6] ;

  with Qry_Avulsa_Temp do
       begin
       close ;
       sql.clear ;
       sql.text := 'insert into #'+ FrmPrincipal.SysInfo.ComputerName + 'COOS_Vinculados' + ' ( CodigoReferenciaNF ,'   +
                                                                                               'Data_Doc ,'             +
                                                                                               'ECF_Modelo  ,'          +
                                                                                               'ECF_Numero_Serie  ,'    +
                                                                                               'ECF_Numero  ,'          +
                                                                                               'Numero_Pdv ,'           +
                                                                                               'COO ,'                  +
                                                                                               'Valor )'                +
                                                                                               'values('                +
                                                                                               ':CodigoReferenciaNF ,'  +
                                                                                               ':Data_Doc ,'            +
                                                                                               ':ECF_Modelo , '         +
                                                                                               ':ECF_Numero_Serie ,'    +
                                                                                               ':ECF_Numero ,'          +
                                                                                               ':Numero_Pdv ,'          +
                                                                                               ':COO ,'                 +
                                                                                               ':Valor )' ;
       ParamByName('CodigoReferenciaNF').asinteger   := CodigoReferenciaNF ;
       ParamByName('Data_Doc').AsDate                := StrToDate(Data_Doc) ;
       ParamByName('ECF_Modelo').asstring            := ECF_Modelo ;
       ParamByName('ECF_Numero_Serie').asstring      := ECF_Numero_Serie ;
       ParamByName('ECF_Numero').asstring            := ECF_Numero ;
       ParamByName('Numero_Pdv').asstring            := Numero_Pdv ;
       ParamByName('COO').asstring                   := COO ;
       ParamByName('Valor').AsFloat                  := StrToFloat(Valor) ;
       ExecSQL ;
       end;
  finally
    Arquivo_COO.Free ;
  end;
  end;

Editado por marcelo_sp
Link para o comentário
Compartilhar em outros sites

vc passou a procedure para ler,  ai perguntei no caso tambem para criar o arquivo com formato como citei acima porque essa é para ler certo.. e para criar o txt ?

A;12024;389141;FULANO ;RUA TESTE;S/N;CIDADE TESTE;(77)9999-9999;
B;12024;389141;2113060;MSL;3;20160610;20160910;2500;
B;12024;389141;2029462;MSL;9;20151214;20160915;2500;
B;12024;389141;2029463;MSL;9;20151214;20160915;2500;
B;12024;389141;2029464;OBT;9;20151214;20160915;2500;
B;12024;389141;2029465;ALG;9;20151214;20160915;2500;

Editado por dreamsoft_PR
Link para o comentário
Compartilhar em outros sites

procedure Cria_Arquivo ;
    var Arquivo  : TStrings ;
  begin
  Arquivo  :=TStringList.create ;
  try

  Arquivo.Clear ;

  Arquivo.add('A;12024;389141;FULANO ;RUA TESTE;S/N;CIDADE TESTE;(77)9999-9999;');
  Arquivo.add('B;12024;389141;2113060;MSL;3;20160610;20160910;2500;');

  Arquivo.SaveToFile('c:\Meu_Arquivo.txt');

  finally
    Arquivo.Free ;
  end;
  end;

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
Em 2017-4-11 at 14:24, marcelo_sp disse:

procedure Cria_Arquivo ;
    var Arquivo  : TStrings ;
  begin
  Arquivo  :=TStringList.create ;
  try

  Arquivo.Clear ;

  Arquivo.add('A;12024;389141;FULANO ;RUA TESTE;S/N;CIDADE TESTE;(77)9999-9999;');
  Arquivo.add('B;12024;389141;2113060;MSL;3;20160610;20160910;2500;');

  Arquivo.SaveToFile('c:\Meu_Arquivo.txt');

  finally
    Arquivo.Free ;
  end;
  end;

ol

 

Em 2017-4-11 at 11:58, marcelo_sp disse:

Use este procedimento para leitura :

procedure Split(const Delimiter: Char; Value: string; const Strings: TStrings) ;
begin
Assert(Assigned(Strings)) ;
Strings.Clear ;
Strings.Delimiter       := Delimiter ;
Strings.StrictDelimiter := True ;
Strings.DelimitedText   := Value ;
end;

 

Exemplo de Uso :

  procedure Cadastra_COOs ;
    var Arquivo_COO      : TStrings ;
        Data_Doc         : String ;
        ECF_Modelo       : String ;
        ECF_Numero_Serie : String ;
        ECF_Numero       : String ;
        Numero_Pdv       : String ;
        COO              : String ;
        Valor            : String ;
  begin
  Arquivo_COO:=TStringList.create ;
  Arquivo_COO.Clear ;
  try
  Split(';' , 'B;12024;389141;2029465;ALG;9;20151214;20160915;2500' , Arquivo_COO) ; // Delimeter pode ser '|' ou outro utilizado no seu arquivo

  Data_Doc         := Arquivo_COO.Strings[0]  ;
  ECF_Modelo       := Arquivo_COO.Strings[1] ;
  ECF_Numero_Serie := Arquivo_COO.Strings[2] ;
  ECF_Numero       := Arquivo_COO.Strings[3] ;
  Numero_Pdv       := Arquivo_COO.Strings[4] ;
  COO              := Arquivo_COO.Strings[5] ;
  Valor            := Arquivo_COO.Strings[6] ;

  with Qry_Avulsa_Temp do
       begin
       close ;
       sql.clear ;
       sql.text := 'insert into #'+ FrmPrincipal.SysInfo.ComputerName + 'COOS_Vinculados' + ' ( CodigoReferenciaNF ,'   +
                                                                                               'Data_Doc ,'             +
                                                                                               'ECF_Modelo  ,'          +
                                                                                               'ECF_Numero_Serie  ,'    +
                                                                                               'ECF_Numero  ,'          +
                                                                                               'Numero_Pdv ,'           +
                                                                                               'COO ,'                  +
                                                                                               'Valor )'                +
                                                                                               'values('                +
                                                                                               ':CodigoReferenciaNF ,'  +
                                                                                               ':Data_Doc ,'            +
                                                                                               ':ECF_Modelo , '         +
                                                                                               ':ECF_Numero_Serie ,'    +
                                                                                               ':ECF_Numero ,'          +
                                                                                               ':Numero_Pdv ,'          +
                                                                                               ':COO ,'                 +
                                                                                               ':Valor )' ;
       ParamByName('CodigoReferenciaNF').asinteger   := CodigoReferenciaNF ;
       ParamByName('Data_Doc').AsDate                := StrToDate(Data_Doc) ;
       ParamByName('ECF_Modelo').asstring            := ECF_Modelo ;
       ParamByName('ECF_Numero_Serie').asstring      := ECF_Numero_Serie ;
       ParamByName('ECF_Numero').asstring            := ECF_Numero ;
       ParamByName('Numero_Pdv').asstring            := Numero_Pdv ;
       ParamByName('COO').asstring                   := COO ;
       ParamByName('Valor').AsFloat                  := StrToFloat(Valor) ;
       ExecSQL ;
       end;
  finally
    Arquivo_COO.Free ;
  end;
  end;

ola pode me tirar so outra duvida como faço para ir para 2º ,3º 4º linha do arquivo 

Link para o comentário
Compartilhar em outros sites

obrigado pelas dicas tem me ajuda muito so estou com duvida 

Split(';' , 'B;12024;389141;2029465;ALG;9;20151214;20160915;2500' , Arquivo_COO) ; // Delimeter pode ser '|' ou outro utilizado no seu arquivo

nesse aqui para colocar no lugar para ir lento as linhas do arquivo txt 

esse que vc me passou nao achei no codigo que esta acima 

Arquivo_List.Strings

eu fiz assim mas ele esta pegando toda a linha

 

  try
   While not Eof(f) do BEGIN
      Readln(f, Linha);

  Split(';' , Linha , Arquivo_COO) ;

 ShowMessage(Arquivo_COO.Strings[0]);

nao esta separando pelos ;

seria

A

b

perdao deu certinho sim. rss muito obrigado!""!!!!

fiz assim deu certo sim.. valeu mesmo!!! exemplo

  try
   While not Eof(f) do BEGIN
      Readln(f, Linha);

  Split(';' , Linha , Arquivo_COO) ; // Delimeter pode ser '|' ou outro utilizado no seu arquivo
    ShowMessage(Arquivo_COO.Strings[0]);


  Data_Doc         := Arquivo_COO.Strings[0]  ;
  ECF_Modelo       := Arquivo_COO.Strings[1] ;
  ECF_Numero_Serie := Arquivo_COO.Strings[2] ;
  ECF_Numero       := Arquivo_COO.Strings[3] ;
  Numero_Pdv       := Arquivo_COO.Strings[4] ;
  COO              := Arquivo_COO.Strings[5] ;
  Valor            := Arquivo_COO.Strings[6] ;

   END;
  finally
     Arquivo_COO.Free ;
     CloseFile(f);
  end;
 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2518 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...