Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Archivos de Texto y binario (manejar) (https://www.clubdelphi.com/foros/showthread.php?t=30784)

h2o_mx 19-04-2006 10:46:09

Archivos de Texto y binario (manejar)
 
Saludos amigos quiero saber como le puedo hacer para usar
archivos de texto, lo que quiero hacer es una bitacora de texto.

los uso de estas dos formas pero no quedan como quiero:

_____________________(1)_________________________

Código Delphi [-]
procedure Bitacora();
var
  Fichero: TextFile;
begin
  AssignFile(Fichero, 'Prueba.txt');
  if fileexists('Prueba.txt') then begin
    Reset(Fichero);
  end else begin
    Rewrite(Fichero);
  end;
  writeLn(Fichero,'cualquier accion');
  CloseFile(Fichero);
end;

el problema aqui es que el reset que sepa solo abrira el
archivo en caso de que exista pero no lo hace, me marca
un error y si se ejecuta el rewrite jala bien.

_____________________(2)_________________________

Código Delphi [-]
type
TReg=record
      Acc: String[50];
      Usu: String[20]
     end;
    TArch=File of TReg;
var
  Archivo: TArch;
   Registro: TReg;
 
procedure Bitacora();
begin
 AssignFile(Archivo,'ARCHIVO.DAT');
 if FileExists('ARCHIVO.DAT') then 
    Reset(Archivo) {Abre el archivo}
     else Rewrite(Archivo); 
 Seek(Archivo,0);
 Registro.Acc:='cualquier accion';
 Registro.Usu:='X usuario';
 Write(Archivo,Registro);
 CloseFile(Archivo);
end;

//este me pone un caracter raro al inicio de cada
insercon(cosa que no me importa mucho),
pero no aplica el writeln, todo me lo escribe
en una sola linea, he intentado asi
Registro.Acc:='cualquier accion'+char(13);
para que me genere un salto de linea
pero nada.

La otra es sobre Archivos Binarios

quiero guardar claves de usuarios y pass en archivos binarios,
como poder usarlos o que me recomiendan?

Espero me halla dado a entender y me puedan ayudar
gracias!!!!

seoane 19-04-2006 13:12:26

Para los ficheros de texto Reset los abre solo para lectura, para poder escribir en ellos hay que utilizar Append.

Seria algo asi
Código:

procedure Bitacora();
var
Fichero: TextFile;
begin
AssignFile(Fichero, 'Prueba.txt');
if fileexists('Prueba.txt') then begin
Append(Fichero);
end else begin
Rewrite(Fichero);
end;
writeLn(Fichero,'cualquier accion');
CloseFile(Fichero);
end;

De todas fromas para tratar con archivos de texto tenemos la clase TStringList que los maneja de maravilla :)
Código:

procedure Bitacora();
begin
  with TStringList.Create do
  try
    try
      // Intentamos cargar el archivo, si no existe se genera una excepcion
      // que atrapamos e ignoramos
      LoadFromFile('d:\prueba.txt');
    except end;
    Add('Cualquier texto');
    SaveToFile('d:\prueba.txt');
  finally
    Free;
  end;
end;

Espero que te sirva

h2o_mx 20-04-2006 08:28:55

excelente amigo, se agradece mucho, me ha sido de muchisima
utilidad. Mil Gracias!!! :cool: :cool:


La franja horaria es GMT +2. Ahora son las 11:53:14.

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