PDA

Ver la Versión Completa : Agregar fecha al nombre de un archivo.


Tourette
20-05-2013, 21:15:52
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:


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 :)

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:

...
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 (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

ecfisa
20-05-2013, 22:29:17
Hola Tourette.


...
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!