Utiliza esta rutina que elabore hace años para exportar un dataset a un archivo texto.
Código Delphi
[-]
function _exportar_datos (var Consulta: TIBDataSet; const nombre_archivo: string; const separador: string; encabezado:boolean) : boolean;
var
DelimOutput : TIBOutputDelimitedFile;
F: TextFile; Archivo: File;
cadena: string;
Buffer: array[0..1023] of Char;
funciono: boolean;
begin
funciono := true;
if (Consulta.IsEmpty) or (nombre_archivo = '') then
funciono := false
else begin
try
DelimOutput := TIBOutputDelimitedFile.Create;
DelimOutput.OutputTitles := encabezado; DelimOutput.ColDelimiter := separador;
DelimOutput.Filename := nombre_archivo;
Screen.Cursor := crHourglass;
Consulta.DisableControls;
try
Consulta.BatchOutput(DelimOutput);
except
funciono := false;
end;
Consulta.EnableControls;
Screen.Cursor := crDefault;
finally
DelimOutput.Free;
end;
if encabezado then
try
AssignFile(F, nombre_archivo);
Reset(F);
Readln(F,cadena);
CloseFile(F);
cadena := LowerCase(cadena);
StrPcopy(buffer,cadena); AssignFile(Archivo, nombre_archivo);
Reset(Archivo,1);
Seek(Archivo,0);
BlockWrite(Archivo, buffer, length(cadena));
CloseFile(Archivo);
except
funciono := false;
end;
end; _exportar_datos := funciono;
end;
Forma de uso:
Código Delphi
[-]
procedure TFrmExplorador_Tablas.ExportarDatos1Click(Sender: TObject);
begin
SaveDialog1.Filename := 'Resultado.txt';
if SaveDialog1.Execute then begin
Refresh;
try
_exportar_datos(DSConsulta,SaveDialog1.FileName,';',true);
except
MessageDlg('No fue posible Exportar los datos', mtWarning, [mbOK], 0);
end;
end;
end;
Espero que sea de utilidad.