Ver Mensaje Individual
  #4  
Antiguo 15-06-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.

El error sucede por que no estas abriendo el archivo antes de escribir en él.
Pero además, la parte de tu código que debería copiar todos los registros desde el DBGrid sólo copiaría el actual.

Probá de este modo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
const
  TAB = #9;
var
  i: Integer;
  Cabecera: string;
  T: TextFile;
  BM: TBookmarkStr;
begin
   Dialogo.Initialdir := ExtractFilePath(application.ExeName);
   Dialogo.Title  := 'Indicar localización y nombre del archivo a grabar';
   Dialogo.Filter := 'Archivos txt|*.txt';
   if Dialogo.Execute then
   begin
     if FileExists(Dialogo.Filename) and
        (Application.MessageBox('El fichero ya existe, ¿desea reemplazarlo?',
         'ATENCION',MB_YESNO + MB_ICONWARNING) = IDNO) then
      Exit;
     AssignFile(T, Dialogo.FileName);
     Rewrite(T);
     Cabecera:= '';
     for i:= 0 to DBGRid1.Columns.Count -1 do
       Cabecera:= Cabecera + DBGrid1.Columns[i].Title.Caption + TAB;
     Writeln(T, Cabecera);
     BM:= DBGrid1.DataSource.DataSet.Bookmark;
     DBGrid1.DataSource.DataSet.DisableControls;
     DBGrid1.DataSource.DataSet.First;
     while not DBGrid1.DataSource.DataSet.Eof do
     begin
       Writeln(T, Trim(DBGrid1.Columns[0].Field.AsString)+ TAB +
                  Trim(DBGrid1.Columns[2].Field.AsString)+ TAB +
                  Trim(DBGrid1.Columns[2].Field.AsString));
       DBGrid1.DataSource.DataSet.Next;
     end;
     DBGrid1.DataSource.DataSet.Bookmark:= BM;
     DBGrid1.DataSource.DataSet.EnableControls;
     CloseFile(T);
   end;
end;
Un comentario, este modo con el que guardas no tabulará correctamente los datos.

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 15-06-2011 a las 07:09:47. Razón: Corregir el identado
Responder Con Cita