Hola pmtzg.
Espero no haber supuesto mal en que buscas copiar todos los registros de la tabla a un archivo de texto y no uno sólo...
Este código lo va a realizar con cualquier descendiente de
TDataSet (
TIBDataSet,
TIBQuery,
TIBTable,
TADOQuery,...,
TTable), lo comenté lo mejor que pude:
Código Delphi
[-]
procedure PasarATexto(ADataSet: TDataSet; const Destino: string);
var
BM: TBookMarkStr;
TF: TextFile;
i: Integer;
r,s: string;
begin
AssignFile(TF, Destino); try
Rewrite(TF); try
BM:= ADataSet.Bookmark; AdataSet.DisableControls; ADataSet.First; while not ADataSet.Eof do
begin
s:= '';
for i:= 0 to ADataSet.FieldCount -1 do
begin
s:= s + ADataSet.Fields[i].AsString +
StringOfChar(' ',ADataSet.Fields[i].DisplayWidth -
Length(ADataSet.Fields[i].AsString));
end;
Writeln(TF, s); ADataSet.Next; end;
finally
CloseFile(TF);
ADataSet.Bookmark:= BM; AdataSet.EnableControls; end;
except
raise Exception.Create(SysErrorMessage(GetLastError));
end;
end;
El argumento Destino deberá ser la suma de Ruta + Nombre_Archivo.
Usé
BookmarkStr,
DisableControls/
EnableControls, por si estás mostrando los datos en algún control data-aware en ese momento. Pero si no es así podés quitar toda referencia a esas líneas.
Ejemplos de uso:
Código Delphi
[-]
PasarATexto(IBDataSet1, 'C:\Desde_IBDataSet.txt');
PasarATexto(IBQuery1, 'C:\Desde_IBQuery.txt');
...
Un saludo.