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]