Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Trabajando y conociendo mas a TextFile (https://www.clubdelphi.com/foros/showthread.php?t=76424)

Ledian_Fdez 31-10-2011 14:25:54

Trabajando y conociendo mas a TextFile
 
He estado buscando documentación sobre el uso de TextFile y la verdad no he encontrado mucho sobre ello.

En hilos anteriores le comentaba que necesitaba de un archivo de texto actualizar unas tablas, todo funciono bien gracias a la ayuda de ustedes como siempre tan amable y eficientes. Este es el enlace del hilo:http://www.clubdelphi.com/foros/showthread.php?t=76381

Ahora necesito el paso inverso con los datos de unas series de tabla para crear el archivo de texto.

Tengo algo como esto:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  F: TextFile;
  Linea: string;
begin
 if FileExists('C:\personal.txt') then
   begin
    AssignFile(F,'C:\personal.txt');
  // ¿Cómo limpiar o vaciar F?
   end
 else // si no existe
   begin
    // ¿Cómo crear el archivo vacio? para luego poder asignarlo a F
    AssignFile(F,'C:\personal.txt');
   end;   
  
 DM.QryAutorizado.Open;
 Append(F); 
 while not DM.QryAutorizado.Eof do
   begin
    Linea := DM.QryAutorizadoCodigo.AsString + '|' + DM.QryAutorizadoNombre.AsString + '|' +
             DM.QryAutorizadoCIdentidad.AsString + '|' + DM.QryAutorizadoDir.AsString + '|' +
             DM.QryAutorizadocodigoEmail.AsString;  

    DM.QryAutorizado.Next;
    Writeln(F,Linea);
   end;
 Flush(F);
 CloseFile(F);
 DM.QryAutorizado.Close;
 ShowMessage('ya');
end;

Cosas que quiero hacer:
1- Si el archivo no existe pues tengo que crearlo 1ro para luego asignarlo a F, AssignFile(F,'C:\personal.txt')
2- En caso de que exista y contenga información tengo que limpiarlo

Eso es lo que se me ocurre, Si alguien tiene otra idea mejor, pues se lo agradecere.

En espera de su ayuda y mil gracias de antemano
Le saludo.

ecfisa 31-10-2011 14:36:43

Hola Ledian_Fdez.

Como es indiferente si existe o no, ya que de todas maneras tenés que vaciarlo, yo haría:
Código Delphi [-]
var
  F: TextFile;
  Linea: string;
begin
  AssignFile(F, 'C:\PERSONAL.TXT');
  Rewrite(F);
  DM.QryAutorizado.Open;
  while not DM.QryAutorizado.Eof do
  begin
    Linea := DM.QryAutorizadoCodigo.AsString +  '|'  + DM.QryAutorizadoNombre.AsString + '|' +
             DM.QryAutorizadoCIdentidad.AsString + '|' + DM.QryAutorizadoDir.AsString + '|' +
             DM.QryAutorizadocodigoEmail.AsString;
    Writeln(F,Linea);
    DM.QryAutorizado.Next;
  end;
  DM.QryAutorizado.Close;
  Flush(F);
  CloseFile(F);
end;

Un saludo.

escafandra 31-10-2011 14:47:39

Cita:

Empezado por Ledian_Fdez (Mensaje 417173)
Cosas que quiero hacer:
1- Si el archivo no existe pues tengo que crearlo 1ro para luego asignarlo a F, AssignFile(F,'C:\personal.txt')
2- En caso de que exista y contenga información tengo que limpiarlo


Tienes una API muy directa para abrir un fichero de forma que siempre se recree de nuevo: CreateFile:

Código Delphi [-]
var
  FileHandle: Integer;
begin
  FileHandle:= CreateFile('FileName', GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_FLAG_WRITE_THROUGH, 0);
  //......................
end;

Saludos.

Ledian_Fdez 31-10-2011 14:59:07

Ok
 
Mil gracias ... ya me funciono !!!

Ledian_Fdez 31-10-2011 17:14:31

Conocer la longitud de un TextFile
 
Hola chicos hay alguna forma de conocer la longitud de un archivo TextFile.

Casimiro Notevi 31-10-2011 17:25:26

Preguntas distintas->temas distintos, please ;)


La franja horaria es GMT +2. Ahora son las 06:25:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi