Foi mau eu esqueci de testar o Abrir e estava com erro.

      ttAbrir :
         begin
            Readln(F, Linha);
            s := '';
            x := -1;
            pDataSet.Append;
            for i := 1 to Length(Linha) do
            begin
               if Linha[i] <> ';' then
                  s := s + Linha[i]
               else
               begin
                  Inc(x);
                  case pDataSet.Fields[x].DataType of
                     ftDate,
                     ftDateTime : pDataSet.Fields[x].AsDateTime := 
StrToDate(s);
                     ftInteger  : pDataSet.Fields[x].AsDateTime := 
StrToInt(s);
                     ftFloat,
                     ftCurrency : pDataSet.Fields[x].AsDateTime := 
StrToFloat(s);
                  else
                     pDataSet.Fields[x].AsString := s;
                  end;
                  s := '';
               end;
            end;
            Inc(x);
            case pDataSet.Fields[x].DataType of
               ftDate,
               ftDateTime : pDataSet.Fields[x].AsDateTime := StrToDate(s);
               ftInteger  : pDataSet.Fields[x].AsDateTime := StrToInt(s);
               ftFloat,
               ftCurrency : pDataSet.Fields[x].AsDateTime := StrToFloat(s);
            else
               pDataSet.Fields[x].AsString := s;
            end;
            pDataSet.Post;
         end;

Basta usar assim que funciona.

Eduardo



Eduardo Castro Alves escreveu:
> Ta na mão,
>
> type
>  TTipo  = (ttAbrir, ttGravar);
>  TForm1 = class(TForm)
>  ...
>
> procedure ProcessarArquivo(pDataSet: TDataSet; pArquivo: String; 
> pTipo: TTipo);
> var
>   F : TextFile;
>   i,
>   x : Integer;
>   Linha,
>   s : String;
>   vArquivo : Array [0..MAX_PATH] of Char;
>
> begin
>
>   StrPCopy(vArquivo, pArquivo);
>   if (FileExists(vArquivo)) and (pTipo = ttGravar) then
>      DeleteFile(vArquivo);
>   AssignFile(F, vArquivo);
>   if FileExists(vArquivo) then
>      Reset(F)
>   else
>   begin
>      Rewrite(F);
>      Append(F);
>   end;
>   case pTipo of
>      ttGravar :
>         begin
>            for i := 0 to pDataSet.RecordCount - 1 do
>            begin
>               s := '';
>               for x := 0 to pDataSet.Fields.Count - 1 do
>               begin
>                  s := s + pDataSet.Fields[x].AsString;
>                  if x < pDataSet.Fields.Count - 1 then
>                     s := s + ';';
>               end;
>               Writeln(F, s);
>            end;
>         end;
>      ttAbrir :
>         begin
>            Readln(F, Linha);
>            s := '';
>            x := -1;
>            for i := 1 to Length(Linha) do
>            begin
>               pDataSet.Append;
>               if Linha[i] <> ';' then
>                  s := s + Linha[i]
>               else
>               begin
>                  Inc(x);
>                  case pDataSet.Fields[x].DataType of
>                     ftDate,
>                     ftDateTime : pDataSet.Fields[x].AsDateTime := 
> StrToDate(s);
>                     ftInteger  : pDataSet.Fields[x].AsDateTime := 
> StrToInt(s);
>                     ftFloat,
>                     ftCurrency : pDataSet.Fields[x].AsDateTime := 
> StrToFloat(s);
>                  else
>                     pDataSet.Fields[x].AsString := s;
>                  end;
>               end;
>            end;
>            Inc(x);
>            pDataSet.Fields[x].AsVariant := s;
>            pDataSet.Post;
>         end;
>   end;
>   CloseFile(F);
>
> end;
>
> procedure TForm1.btn1Click(Sender: TObject);
> begin
>
>   ProcessarArquivo(qry1, 'C:\TESTE.TXT', ttGravar);
>
> end;
>
>
> QQ Avise !!!
>
> Eduardo
> Fco Yahoo escreveu:
>>
>> Ola pessoal, estou tendo um problema muito serio aqui comigo, preciso 
>> gerar
>> um arquivo contendo os registros de uma determinada tabela por periodo,
>> portanto eu faria isso construindo uma query:
>> If query1.active = true then query1.active:=false;
>> query1.sql.clear;
>> query1.sql.add('select * from table1 where (condicao) ');
>> Agora como eu faço para gravar 1 arquivo contendo esses registros
>> Dai pra frente eu nao sei, e tambem como faço para ler esse arquivo e
>> inserir os registros dele em uma table,
>> Preciso disso, pois estou colocando 1 aplicativo fora do escritorio e 
>> tenho
>> q capturar tudo o que nesse aplicativo for digitado.
>>
>> Agradeco imensamente toda e qualquer ideia;
>> Se quizerem podem entrar em contato em pvt
>> [EMAIL PROTECTED] <mailto:franciscoacao%40hotmail.com>
>> [EMAIL PROTECTED] <mailto:franciscocarlos65%40hotmail.com>
>> [EMAIL PROTECTED] <mailto:fcandrade2001%40yahoo.com.br>
>> [EMAIL PROTECTED] 
>> <mailto:fcandrade%40acaocontabilidade.com.br>
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>

Responder a