Ver Mensaje Individual
  #2  
Antiguo 16-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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);       // Asociar variable con nombre de arhivo
  try
    Rewrite(TF);                 // Crear archivo y abrir
    try
      BM:= ADataSet.Bookmark;    // Salvar posición actual en TDataSet
      AdataSet.DisableControls;  // Desactivar presentación en controles
      ADataSet.First;            // Al primer dato
      while not ADataSet.Eof do
      begin
        s:= '';
        for i:= 0 to ADataSet.FieldCount -1 do
        begin
          // Llenar con espacios a la derecha y concatenar en s
          s:= s + ADataSet.Fields[i].AsString +
              StringOfChar(' ',ADataSet.Fields[i].DisplayWidth -
                           Length(ADataSet.Fields[i].AsString));
        end;
        Writeln(TF, s);          // Guardar línea de texto
        ADataSet.Next;           // Siguiente registro
      end;
    finally
      CloseFile(TF);
      ADataSet.Bookmark:= BM;    // Regresar a posición salvada
      AdataSet.EnableControls;   // Restaurar presentacion en controles
    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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita