manipular un TXT, hacer una especie de log...
Hola... hace tiempo que no me pasaba por aquí...
Bueno, tengo la necesidad de realizar un pequeño programita que me guarde en un txt unas 5 lineas... es como una especie de registro que me almacena una cadena en una linea nueva pero siempre quiero mantener la misma cantidad de lineas (registros), osea, si quiero solo 5 lineas me debería borrar la mas antigua para poder almacenar la ultima linea y quedar siempre con 5 lineas. Una particularidad que debe tener es que si el contenido que va a almacenar ya fue almacenado la ultima vez, entonces no lo vuelve a guardar... archivo.txt ---------- Código:
texto de la linea uno Buscando en el foro vi que lo que me puede servir es el tstringlist, alguno me puede indicarmas o menos como ocuparlo y guiarme un poco en la tarea para poder ir probando??? no estoy pidiendo codigo listo ni nada, para que no se mal interprete... lo que mas deceo es aprender asi que cualquier ayuda será bienvenida. Si no me expliqué bien en lo que necesito realizar o algo no quedó claro solo pregunten y doy mas detalles. Saludos |
Hola, manejar un TStringList es de lo mas sencillo, pero requiere la unidad Classes. Si no deseas emplear esta unidad por motivos de tamaño del ejecutables por ejemplo :D te recomiendo que uses los viejos métodos AssignFiles, Reset, Writeln.. etc
Salu2 |
Vamos a ver si lo puedo hacer de memoria:
|
Seoane, siempre complicas las cosas :D. Se me olvido comprobar si existía el archivo para cargarlo, es que no tengo el compilador delante :(
Otro método:
Salu2 |
Cita:
ademas... yo supongo (me parece que SEOANE tambien) que se va agregando linea a linea, pero si ya hay 5 lineas, se debe borrar la primera para insertar la nueva, pero en ultimo lugar.... bueno asi lo entendi yo... ;):D:D salu2!!!!!!! |
Tienes razón, no me di cuenta de las 5 líneas :D
Salu2 |
pues esta es mi aportacion.... (ya lo tenia en algun programita... (bueno, sin la restriccion de 5 lineas... :D:D:D ) )
salu2!!!!!!! reduciendolo un poco... :D:D:D
|
Si va a ser una escritura continua como se hace en los LOG's (aunque no sea este el caso) yo intentaría no "cargar" el fichero con LoadFromFile cada vez. Si se desea sí se puede garbar cada vez (o cada 5), pero no leer cada vez.
|
Cita:
Comentas que no 'recomiendas' (o que tu no lo harias) leer el fichero cada vez... pero entonces como saber lo que ya esta guardado al momento de querer agregar una nueva linea al fichero ??? Aunque creo que depende del uso... En mi caso, lo ocupo para guardar un LOG de llamadas perdidas, en un sistema de recepcion de llamadas... y aquellas que no se contesten, se agregan al fichero. y como este evento no es tan repetido y sucede en periodos de tiempo largo, digamos que cada 30 min... por eso lo guardo y des pues cuando lo necesito, lo cargo de nuevo para agregar la siguiente linea. Haber si pudieras aclarar esa pregunta.... ;):D salu2!!!!!!! |
Cita:
(1) Crear StringList (2) Cargar de disco (3) Añadir la nueva (eliminando una si es necesario) (4) Grabar a disco Si mantienes el StringList en memoria, puedes hacer únicamente los dos últimos. |
Cita:
haaaa ok ... asi pos si... :D:D Muy buen punto... ;);) ahora si ya entendi... :p:D:D gracias por la aclaracion... salu2!!!!!!! |
Muchas gracias por todas las respuestas, no pensé que recibiría tantas :D, la verdad es que ayer las estuve leyendo asi a la rapida por que no tenia mucho tiempo y no pude responder antes.
He leido cada uno de los post y leyendo los códigos y el que más se acomoda a lo que necesito es el posteado por seoane, lo que me queda agregarle es que verifique si existe el archivo, pero de eso ya me encargo yo... ya me pasaron el codigo listo para llegar y usar.... lo leere bien para entender que hace cada linea de cdigo para aprender... es la idea. Se agradece todo el aporte, cualquier duda o problema que tenga relacionado a este mismo tema lo postearé aqui. Saludos |
Cita:
|
La franja horaria es GMT +2. Ahora son las 18:43:00. |
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