Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2008
sirsolrac sirsolrac is offline
Registrado
 
Registrado: feb 2008
Posts: 6
Poder: 0
sirsolrac Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 10-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
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í:

Código Delphi [-]
lista.Items.Insert(0,'Esto va al principio');

Y luego guardarlo, aprovechando el SavetoFileName().

Código Delphi [-]
lista.Items.SaveToFileName('C:\..\...');

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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 10-02-2008
sirsolrac sirsolrac is offline
Registrado
 
Registrado: feb 2008
Posts: 6
Poder: 0
sirsolrac Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 10-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
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í:

Código Delphi [-]
Seek(myFile,0);
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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 10-02-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Talking

¡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
Responder Con Cita
  #6  
Antiguo 10-02-2008
sirsolrac sirsolrac is offline
Registrado
 
Registrado: feb 2008
Posts: 6
Poder: 0
sirsolrac Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 11-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 11-02-2008
sirsolrac sirsolrac is offline
Registrado
 
Registrado: feb 2008
Posts: 6
Poder: 0
sirsolrac Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 11-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por sirsolrac Ver Mensaje
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.
Sería oportuno que nos detalles en forma más presisa que es lo que estás haciendo. En lo posible que nos aportes tu código y en base a ello podemos serte de mayor ayuda.

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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 15:35:32.


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
Copyright 1996-2007 Club Delphi