Problema na Hora de Formatar a Data do meu Arquivo TXT

Delphi

02/05/2011

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

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

02/05/2011

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


Espero ter colaborado.
GOSTEI 0
Luciano Farias

Luciano Farias

02/05/2011

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

Wilson Junior

02/05/2011

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

Espero ter colaborado.
GOSTEI 0
Luciano Farias

Luciano Farias

02/05/2011

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
GOSTEI 0
Wilson Junior

Wilson Junior

02/05/2011

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.
GOSTEI 0
POSTAR