Fórum Problema na Hora de Formatar a Data do meu Arquivo TXT #400130

02/05/2011

0

Bom Meus amigos, Segue minha rotina criada com ajuda dos colegas do forum, para importar meu arquivo TXT para uma Base Firebird, gostaria de mais uma ajudinha pois estou com dificuldade na hora de converter a data para importar para a tabela desejada.   O erro que me retorna é o seguinte;   A linha do arquivo TXT que estou querendo importar é essa, nesta linha a um espaço entre a data e a hora  como poderia importar esta data;   2011-04-12 07:29:00;IEZ9395;MAF0687;C;AR000135131 --------------------------------------------------------------------------   desde ja agradeço mais uma vez, fico no aguardo   segue o codigo para uma breve analise;  var
  ListaGrava,ListaLer:Tstrings;
  data,linha: String;
  i,posini:Integer;
    begin
    if edImporta.Text <> '' then
    begin
    ListaGrava:=TStringList.Create;
    ListaLer:=TStringList.Create;
  try
    listaLer.LoadFromFile('C:\enLastre\eadi.txt');//Aqui vc vai colocar o caminho onde esta o Arquivo Txt que se quer exportar
    ListaGrava.Delimiter:=';';
      for i := 0 to pred(ListaLer.Count) do
      begin
      posini:= pos(';',ListaLer.Strings[i]);
      linha:=listaler.Strings[i];
      data:=copy(linha,1,posini-1);
      copy(linha,1,posini-1);
      linha :=copy(linha,posini+1,length(linha));
      ListaGrava.DelimitedText:=Linha;
      ListaGrava.DelimitedText:=ListaLer.Strings[i];
      showmessage(ListaGrava.Strings[0]+
                  ListaGrava.Strings[1]+
                  ListaGrava.Strings[2]+
                  ListaGrava.Strings[3]+
                  ListaGrava.Strings[4]);
//rotina para importar dados tab_eadisul
      dm.qrImpE.Close;
      dm.qrImpE.SQL.Clear;
      dm.qrImpE.SQL.Add('insert into tab_eadisul');
      dm.qrImpE.SQL.Add('(DATA,CAVALO,REBOQUE,STATUS,MIC_ID) VALUES');
      dm.qrImpE.SQL.Add('(:DATA,:CAVALO,:REBOQUE,:STATUS,:MIC_ID)');
        if not dm.Transacao.InTransaction then
               dm.Transacao.StartTransaction;
               dm.qrImpE.Close;
               dm.qrImpE.ParamByName('DATA').AsString   := ListaGrava.Strings[0];
               dm.qrImpE.ParamByName('CAVALO').AsString := ListaGrava.Strings[1];
               dm.qrImpE.ParamByName('REBOQUE').AsString:= ListaGrava.Strings[2];
               dm.qrImpE.ParamByName('STATUS').AsString := ListaGrava.Strings[3];
               dm.qrImpE.ParamByName('MIC_ID').AsString := ListaGrava.Strings[4];
               dm.qrImpE.Open;
               dm.Transacao.Commit;
              end;
                finally
          ListaGrava.Free;
          ListaLer.Free;
          edImporta.Clear;
Luciano Farias

Luciano Farias

Responder

Posts

02/05/2011

Wilson Junior

Tente assim
dm.qrImpE.ParamByName('DATA').AsDateTime := StrToDateTime( ListaGrava.Strings[0], 'yyyy-mm-dd hh:nn:ss' );


Espero ter colaborado.
Responder

Gostei + 0

02/05/2011

Luciano Farias

Grato Amigão pela ideia, mas não funcionou da um erro e estou aberto a mais Sugestões    
Responder

Gostei + 0

02/05/2011

Wilson Junior

de uma olhada neste link http://www.delphibasics.co.uk/RTL.asp?Name=StrToDateTime

Espero ter colaborado.
Responder

Gostei + 0

02/05/2011

Luciano Farias

Amigo, outra duvida   este meu arquivo txt contem estas linhas para importar para a base de dados, mas quando tento importar com o espaço entre a data e a hora me mostra esta mensagem a baixo;   2011-04-12 07:29:00;IEZ9395;MAF0687;C;AR000135131
2011-04-12 07:29:00;IEZ9395;MAF0687;C;AR000135131     e se eu tiro o espaço ela importa perfeitamente o problema é que meu arquivo é gerado neste formato com o espaço entre a data e a hora;
2011-04-1207:29:24;EFW0724;EFW0714;V;AR000135103
2011-04-1207:30:01;DJF6492;DTB9722;V;AR000135070   Grato pelas ajudas
Responder

Gostei + 0

06/05/2011

Wilson Junior

Olhe este link e veja se lhe ajuda https://www.devmedia.com.br/post-13222-Delphi--Exemplo-de-uso-da-funcao-StringReplace.html. Pois vc pode substituir o seu espaço por nada.

Espero ter colaborado.
Responder

Gostei + 0

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

Aceitar