Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como puedo grabar texto en un Archivo de Texto sin Sobreescribir???? (https://www.clubdelphi.com/foros/showthread.php?t=17734)

AGAG4 19-01-2005 20:10:04

Como puedo grabar texto en un Archivo de Texto sin Sobreescribir????
 
Como puedo grabar texto en un Archivo de Texto sin Sobreescribir????

Lo que pasa es que tengno un archivo de texto donde voy guardando una pequeña bitacora de Errores por lo que no quiero que cada vez que haya un error me vaya borrando la informacion que ya estaba, ya intente usando el SaveToStream con sua valores fmCreatey fmOpenWrite pero me sobreescribe y con SaveToFile tambien me lo sobreescribe y abriendo el archivo con
Código Delphi [-]
    AssignFile(Txt,RutaVar+'\'+Archivo);
    ReWrite(Txt);
    WriteLN(Txt,Mensaje);
y tambien me sobreescribe.
Agradezco cualquier sugerencia.

delphi.com.ar 19-01-2005 20:15:56

Tendrías que posicionarte en el final del archivo..
Cita:

...To expand a file, seek one component beyond the last component; that is, the statement Seek(F, FileSize(F)) moves the current file position to the end of the file...
Saludos!

cone220 19-01-2005 20:33:00

Si lo que queres es agregar texto a un archivo, en lugar de utilizar ReWrite(F) utiliza Reset(F)

AssignFile(F,'\Prueba\prueba.txt');
if FileExists('\Prueba\prueba.txt') then
Reset(F)
else
ReWrite(F);
Writeln(F,'Texto de Prueba');
CloseFile(F);

Saludos.

Federico

AGAG4 19-01-2005 20:44:38

Gracias
 
Muchas Gracias Federico y Cone también funciona con Append, que hace las 2 cosas te abre un nuevo registro y al final...

Que tenga buen día.

mamcx 20-01-2005 16:32:43

En esos caso es mas simple usar un TStringList... o una clase del INI. A menos que se necesite acceso random o manejar un formato especial, no veo para que complicarse con bajo nivel...

delphi.com.ar 20-01-2005 16:37:29

Cita:

Empezado por mamcx
En esos caso es mas simple usar un TStringList... o una clase del INI. A menos que se necesite acceso random o manejar un formato especial, no veo para que complicarse con bajo nivel...

Mmmm... recuerda que un TStringList cargará todo el archivo en memoria, y solo guardará el archivo en el momento que se le indique.
Yo preferiría utilizar un TFileStream.

AGAG4 20-01-2005 16:51:47

oki
 
Les agradezco sus respuestas, pero opte por la manera antigua con AssignFile, lo que pasa es que primeramente use el TFileStream pero no encontre que valor es el que te inserta un nuevo mensaje de texto al final del archivo de texto use el fmOpenWrite y el fmCreate.

Que tengan buen día.

mamcx 20-01-2005 16:51:49

Es cierto. Pero normalmente los archivos de texto no son tan grandes. Ahora bien, no caeria mal una clase similar en TStringList con acceso bajo demanda...

edme melina esc 08-11-2005 17:44:49

añadir texto sin sobreescribir
 
Holas
si alguien de ustedes me puede ayudar a resolver se los agradeceria lo q realizo es una consulta q quiero gravar el resultado de esa consulta en un texto por ejemplo hice esto
(while)
result:=DMSepa.Consultas.Fields[0].AsString+','+DMSepa.Consultas.Fields[1].AsString;
AssignFile(F,'c:\proyecto\movimiento.txt' );
Rewrite(F);
Writeln(F, result);
DMSepa.Consultas.Next;
CloseFile(F);
end; (esta dentro de un while)
pero me sobre escribe
Saludos !!Mel

lucasarts_18 08-11-2005 17:53:43

Cita:

Empezado por edme melina esc
Holas
si alguien de ustedes me puede ayudar a resolver se los agradeceria lo q realizo es una consulta q quiero gravar el resultado de esa consulta en un texto
pero me sobre escribe

La respuesta ya la dieron, debes usar Append o Reset.

Hasta Luego -

Casimiro Notevi 08-11-2005 18:56:35

Cita:

Empezado por mamcx
... Ahora bien, no caeria mal una clase similar en TStringList con acceso bajo demanda...

Muchas veces he echado en falta algo así :(

edme melina esc 08-11-2005 22:33:39

crear un archivo de texto
 
Hola gracias por responder si funciona con Apeend(F)
result:=DMSepa.Consultas.Fields[0].AsString+','+DMSepa.Consultas.Fields[1].AsString;
AssignFile(F,'c:\proyecto\movimiento.txt' );
Append(F);
Writeln(F, result);
Flush(F);
DMSepa.Consultas.Next;
CloseFile(F);
ahora tengo otro problemita ,quiero crear un archivo texto para poder guardar los datos de mi consulta ,por q cuando abro de nuevo lo elimino y nesecito crear denuvo
Saludos !!!

lucasarts_18 08-11-2005 22:53:00

Cita:

Empezado por edme melina esc
ahora tengo otro problemita ,quiero crear un archivo texto para poder guardar los datos de mi consulta ,por q cuando abro de nuevo lo elimino y nesecito crear denuvo
Saludos !!!

Debes usar Rewrite, este procedimiento si no encuentra el archivo, el mismo lo crea..

:)


La franja horaria es GMT +2. Ahora son las 12:20:15.

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