Ver Mensaje Individual
  #2  
Antiguo 11-04-2006
Drahcir Drahcir is offline
Miembro
 
Registrado: jul 2005
Ubicación: A Coruña
Posts: 53
Reputación: 21
Drahcir Va por buen camino
Yo utilizo este:
Código Delphi [-]
 
procedure TOdExportaDatos.DataSetToCsv(pDataSet : TDataSet; psRutaFichero : String);
var
  i : Integer;
  voFichero : TStringList;
  vsLinea : String;
  vsBookMark : TBookmarkStr;
begin
  vsBookMark := pDataSet.Bookmark;
  voFichero := nil;
  try
    voFichero := TStringList.Create;
    // Ponemos la cabecera
    vsLinea := '';
    for i := 0 to pDataSet.FieldCount - 1 do
      if pDataSet.Fields[i].Visible then
        vsLinea := vsLinea + '"' + pDataSet.Fields[i].DisplayName + '",';
    voFichero.Add(vsLinea);
    // Insertamos los registros
    pDataSet.DisableControls;
    pDataSet.First;
    while not pDataSet.Eof do
    begin
      vsLinea := '';
      for i := 0 to pDataSet.FieldCount - 1 do
        if pDataSet.Fields[i].Visible then
          vsLinea := vsLinea + '"' + pDataSet.Fields[i].AsString + '",';
      voFichero.Add(vsLinea);
      pDataSet.Next;
    end;
    // Lo guardamos en disco
    voFichero.SaveToFile(psRutaFichero);
  finally
    FreeAndNil(voFichero);
    pDataSet.Bookmark := vsBookMark;
    pDataSet.EnableControls;
  end;
end;

Se llama de la siguiente manera:

DataSetToCsv(dsXXXX.DataSet, 'c:\Fichero.csv');

... o bien utilizando un SaveDialog.
Responder Con Cita