Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Agregar fecha al nombre de un archivo. (https://www.clubdelphi.com/foros/showthread.php?t=83187)

Tourette 20-05-2013 21:15:52

Agregar fecha al nombre de un archivo.
 
Que tal club Delphi, soy nuevo en este foro, asique me presento rapidamente. Mi nombre es adrian, tengo 20 años y estoy estudiando ingenieria.
En un TP que me dieron en la facultad, tengo que crear archivos .log cuando toco un boton con cierta informacion.
Hasta hay todo bien, el problema surge cuando el archivo que el programa crea se tiene que llamar "La fecha de hoy prueba.log". Por Ejemplo. 20/05/2013 prueba.log.
Existe un comando llamado DateToStr(now) que recupera del SO la fecha actual, pero no se como usarlo como nombre del archivo.
Mi codigo es mas o menos asi:

Código:

procedure TLog.NewDailyLog(text: string);
var
  f: TFileStream;
  texto: string;
  backup: string;
begin
  if FileExists ((ExtractFilePath(Application.ExeName)+'Prueba.log')) then begin
    f := TFileStream.Create(ExtractFilePath(Application.ExeName)+'prueba.log', fmOpenReadWrite);
    SetLength(backup, f.Size);
    f.Read(backup[1],f.Size);
    f.Position := 0;
    texto := DateToStr(now)+' '+TimeToStr(now)+' '+text + #13 + #10;
    f.Write(texto[1],length(texto));
    f.Write(backup[1],f.Size);
    f.free;
  end else begin
    f := TFileStream.Create(ExtractFilePath(Application.ExeName)+'prueba.log', fmCreate);
    texto := DateToStr(now)+' '+TimeToStr(now)+' '+text + #13 + #10;
    f.Write(texto[1],length(texto));
    f.Free;
  end;

end;

Desde ya, muchas gracias a todos por su ayuda.

ecfisa 20-05-2013 21:27:51

Hola Tourette, bienvenido a Club Delphi :)

Cita:

Hasta hay todo bien, el problema surge cuando el archivo que el programa crea se tiene que llamar "La fecha de hoy prueba.log". Por Ejemplo. 20/05/2013 prueba.log.
Ejemplo:
Código Delphi [-]
...
var
  aFileName: string;
begin
  aFileName := DateToStr(Date) + ' prueba.log';
  ...

Saludos. :)

Tourette 20-05-2013 22:07:44

Muchas gracias, pero mi duda sigue siendo como escribir el parrafo

f := TFileStream.Create(ExtractFilePath(Application.ExeName)+'prueba.log', fmCreate);

usando el contenido de la variable (en tu ejemplo) aFileName para que me lo tome y me cree el archivo con dicho nombre, porque ya probe de varias maneras pero siempre que corro el programa y uso el boton se me crashea.

Casimiro Notevi 20-05-2013 22:26:27

Pon tu código.
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

ecfisa 20-05-2013 22:29:17

Hola Tourette.

Código Delphi [-]
...
var
  ...
  aFileName: string;
begin
  aFileName := ExtractFilePath(Application.ExeName) +
               StringReplace(DateToStr(Date), '/' ,'-', [rfReplaceAll]) + { '/' no válido para nombre de archivo }
               ' prueba.log';
  f := TFileStream.Create(aFileName, fmCreate);
  ...

Saludos. :)

Tourette 20-05-2013 22:40:34

Muchas gracias, ahora si me funciona de maravilla!


La franja horaria es GMT +2. Ahora son las 16:30:10.

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