• Viernes 8 de Noviembre de 2024, 20:17

Autor Tema:  Invertir Lineas De Un Fichero  (Leído 1604 veces)

Minerdi

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Invertir Lineas De Un Fichero
« en: Jueves 28 de Febrero de 2008, 23:49 »
0
Hola :), estoy comiendome la cabeza con un programa, unicamente ha de coger un fichero invertir las lineas y sacarlas por pantalla, es decir que la primera linea seria la ultima y la ultima seria la primera, pero no encuentro la mejor forma para lograrlo.

No se si fseek me serviría, me podeis aconsejar un poco sobre el tema?

Gracias :P

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Invertir Lineas De Un Fichero
« Respuesta #1 en: Viernes 29 de Febrero de 2008, 20:36 »
0
Pues la forma más directa es cargar en memoria el archivo, leyendo linea por linea y creando una lista enlazada en "reversa". Luego mostrarlas en pantalla siguiendo el orden de la lista.

Nota: Como es un archivo de texto se leen secuencialmente y se pueden leer linea por linea detectando los caracteres de saltos de linea.

La función fseek no te posicionará en el archivo por lineas, sino por bytes. Y si quieres saber donde están los saltos de linea de todas formas tendrás que leer todo el archivo.

Ahora o bien lees varias veces el archivo por partes para ahorrar memoria y cargar en memoria sólo una linea a la vez (por eso de mostrar el archivo en forma invertida), o lees todo el archivo de texto y lo almacenas en memoria. Lo interesante sería un algoritmo que te permita hacer esto sin tener que poner todo el archivo en memoria o tener que leer varias veces el archivo.  ;)

Minerdi

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Invertir Lineas De Un Fichero
« Respuesta #2 en: Viernes 29 de Febrero de 2008, 23:46 »
0
Supongo que lo mas "facil" sería cargarlo de golpe en memoria no?, Que se trataria de hacer alguna matriz?