FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Editando un archivo de texto
Hola todos.
Tengo este reto para algun ingenioso o muy conocedor del codigo delphi. He creado un archivo de texto con un programa que basado en delphi. En dicho archivo cada vez que realizo una lectura dentro de mi programa creo una linea nueva de texto (como si fuera un log). Pero mi problema radica en que necesito que la linea que escribo en el archivo de texto se guarde al inicio y no al final del archivo. Por ejemplo, este seria mi archivo de texto tal como lo tengo ahorita: linea 1 (primera linea que se ingresa) linea 2 linea 3 linea 4 (ultima linea que se ingresa) Pero el que necesito crear es el siguiente: linea 4 (ultima linea que se ingresa) linea 3 linea 2 linea 1 (primera linea que se ingresa) gracias. |
#2
|
||||
|
||||
Hola sirsolrac,
¿Cómo estás abriendo el archivo? ¿Con un TStringList? No tengo delphi a mano, pero este objeto tiene un método Insert(). Este método lo que hace es insertar un texto en determinada posición. Bastaría con llamarlo así:
Y luego guardarlo, aprovechando el SavetoFileName().
Como no tengo delphi a mano no puedo comprobar si es items, y el orden de los parámetros. Si nos aportas detalles podría saber si este método es el más conveniente. Saludos, |
#3
|
|||
|
|||
esta es la forma en que hago lo del texto.
//escribir resultados en archivo de texto AssignFile(myFile, 'users.txt'); Append(myFile); WriteLn(myFile,''); Write(myFile,'# Tarjeta numero: '+Edit_CardNum.Text+''); WriteLn(myFile,' '); Write(myFile,Edit_Block0data.Text+' ' + 'Password = "' + Edit_CardSize.Text+'"',' ' ); WriteLn(myFile,' '); CloseFile(myFile); Es mi primer archivo de texto que he creado y no haye otra forma de hacerlo, muy probablemente hay una manera mas optima. Te agradeceria si me ayudas. |
#4
|
||||
|
||||
¡Sencillo!
carga el fichero en un TStrings con tuStrings.loadfromfile(cTuFichero) y añades la línea nueva con tuStrings.Insert(0, cadena), luego lo salvas con tuStrings.savetofile(ctuFichero). un saludo
__________________
PepeLolo El hombre el único virus que mide más de unas cuantas micras |
#5
|
||||
|
||||
sirsolrac,
Siendo esa la manera de trabajar con el archivo. Va a ser un tanto dificil. Porque lo que debes hacer es correr todas las líneas primero y luego sobrrescribir el contenido. Deberás tener una rutina que haga dicho corrimiento. Para moverse por las líneas tienes a disposición el procedimiento Seek. El funcionamiento de Seek es así: Con ello te vas al principio y ya puedes ingresar el texto. Pero antes debes hacer una rutina para mover todo: 1. Abrir el archivo. Con lo cual estarás al final. 2. Ingresas un registro "ficticio". 3. Te mueves 2 valores atrás y lees el valor, ahora te mueves un lugar hacia adelante y lo sobrescribes. 4. Vas decrementando el valor a medida que sobreescribes hasta llegar al comienzo. Todo se trata de emplear Seek. Ahora, te podrías evitar ese dolor de cabeza si empleases el Objeto que te comentaba. Ve probando como te queda el algoritmo. Ya te di una buena pista... Saludos, |
#6
|
|||
|
|||
Muchas gracias por la ayuda.
Nunca he utilizado la TStrings en delphi, buscare como utilizarla para meter los parametros que me has indicado y te agradesco mucho tu aporte. |
#7
|
||||
|
||||
sirsolrac, Me parece bien que hayas tenido en cuenta la clase TStrings. Te va resolver muchos problemas.
Viendo que recién te inicias aquí sería oportuno darte la bienvenida a estos foros e informarte sobre la guia de estilo. Antes mayores dudas, ya sabes... aquí estaremos. Pero recomiendo que primeramente, antes de postear, busques si el tema fue tratado con anterioridad. Saludos, |
#8
|
|||
|
|||
sin ideas
Les agradesco mucho su interes por ayudarme y se que ya me han dado las suficientes ideas para poder desarrollar mi aplicacion. Pero por mas que he buscado no encuentro nada especifico que me permita resolver el problema a la hora de escribir el codigo.
Es mi primer programa en delphi y no le hayo como escribir las sentencias utilizando el Tstring con el loadfromfile tal como lo suegerio PepeLolo. Por cierto tenguna una duda ahi, mi archivo de texto lo tengo que convertir a una lista??? Si me ayudan quizas ya no con ideas sino que con algo de codigo se los agradeceria mucho. Asi de un solo puede quedar un buen ejemplo documentado para compartirlo con cualquier otro entusiasta de delphi. Muchas gracias. |
#9
|
||||
|
||||
Cita:
Para que el código se vea bien copialo y haz clic en un botón que diga "resaltar sintaxis delphi" (el botón que esta al lado que dice SQL). Si te estás iniciando en delphi te recomiendo leer la Cara Oculta de Delphi 4. En la sección FTP del club lo vas a encontrar. Saludos, |
#10
|
|||
|
|||
Necesito generar un archivo te texto y escribir siempre en el principio de dicho archivo sin borrar ninguna informacion escrita anteiormente. El codigo para la parte del texto es el siguiente:
y esa secuencia se va a ejecutar ciclicamente de manera indefinada para cada lectura que realice mi programa. Les agradeceria si me ayudan con el codigo. De antemano muchas gracias por tomar su tiempo. |
#11
|
||||
|
||||
El ejemplo que te paso aquí ilustra el uso de un TStringList. Lo primero que se hace es crear el objeto y abrir el archivo.
Con el button1 se van ingresando las lineas. Siempre se van ingresando al final del archivo. Con el boton2 das por finalizada la operación (simplemente guarda el archivo y lo muestra. se puede seguir ingresando sin problemas). Y cuando se cierra la aplicación se libera la memoria que ocupa el objeto. El archivo que se consigue tiene esta forma: Cita:
¿Es esto más o menos lo que deseas conseguir? Cuando yo decía que aportaras detalles me refería a que profundices sobre el tema, y que expusieras más código del que inicialmente mostraste. Si haz estado practicando con el TStringList, sería oportuno que expusieras tus resultados. Saludos, |
#12
|
|||
|
|||
Te agradesco enormemente me hayas ayudado con tu tiempo y conocimiento en programacion.
Pues te comento un poco porque no puse mas del codigo. Como no soy muy bueno programando en delphi mi codigo utiliza un centenar de lineas (se que mas de algun par estan de mas innecesariamente). No inclui tampoco nada de mis pruebas con TStringList porque solo consegui errores de compilacion que creo k no hubieran abonado nada productivo en la solucion del problema. Cuando logre adaptar tu codigo en mi programa lo documentare aqui para que a mas de alguien le ayude a futuro. Ya que este es uno de los objetivos, compartir conocimientos con los demas para buscar la superacion de todos. Muchas gracias a todos, este es un exelente foro. |
#13
|
||||
|
||||
Cita:
Cita:
Te recuerdo que no debes mezclar TStringList con los métodos WriteLn,ReadLn, Append, etc. Cita:
Aquí estaremos esperando, tu ve tranquilo. Ante problemas tiene la ayuda de Delphi, y clubdelphi. Saludos, |
#14
|
||||
|
||||
Misma duda pero con memo
Yo tengo la misma duda del principio pero yo utilizo un memo y lo guardo es un archivo¿Me podrian ayudar porfa?
|
#15
|
||||
|
||||
Cita:
Para leer y guardar un archivo, utiliza los métodos de TStrings SaveToFile y LoadFromFile. Salu2. P.D.: No olvides echarle un vistazo a la ayuda de Delphi sobre los componentes y sus propiedades, suele librar de más de un apuro. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insertando, editando y buscando datos en un mismo formulario | canelita | Conexión con bases de datos | 6 | 05-09-2007 07:40:30 |
saber cuando estoy editando un registro | jhcaboverde | Varios | 4 | 13-02-2007 00:30:48 |
Como puedo grabar texto en un Archivo de Texto sin Sobreescribir???? | AGAG4 | Varios | 12 | 08-11-2005 22:53:00 |
Db y archivo de texto | carlospcs | SQL | 0 | 10-08-2004 23:56:32 |
Db y archivo de texto | carlospcs | Conexión con bases de datos | 0 | 10-08-2004 23:55:09 |
|