• Viernes 8 de Noviembre de 2024, 19:45

Autor Tema:  Leer linea txt  (Leído 1201 veces)

alex1510

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Leer linea txt
« en: Viernes 27 de Noviembre de 2009, 00:19 »
0
Hola buenas. Espero que me entiendan el problema que tengo y a ver si encuentran alguna solucion. A mi no se me ocurre nada. Estoy elaborando un programa que cada minuto lee un archivo de texto. Yo en esta lectura detecto algunos tokens que me interesan. El problema es el siguiente: el archivo de texto se va actualizando continuamente, por lo que la mayoria de las veces, la ultima linea no la leo completa. Para leer, lo hago con fgets y con un while(!feof). El problema es que yo, al llegar al final, guardo la posición, para, en el siguiente acceso a la lectura, continuar desde ahi. El problema es que si en la ultima linea, se ha partido un token de los que me interesan, pues no lo detecto, pues una parte quedo ya en el tramo leido con anterioridad y otra en el tramo nuevo (los tokens los cojo con strcmp). Yo he pensado(a no ser que se os ocurra algo mejor), en que en vez de guardar la posición final, guardar la posición del comienzo de la ultima linea, pero no veo claro como hacerlo. Estoy un poco confuso. Espero me hayan comprendido y sepan darme en la medida de lo posible una solución, con la cual les estaria muy agradecido por mi parte. GRACIAS por leerme.

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Leer linea txt
« Respuesta #1 en: Viernes 27 de Noviembre de 2009, 10:27 »
0
Buenas:

Bueno, asi a primera vista, lo que puedes hacer es que cuando leas EOF, guardas el ultimo token.
Retrocedes el tamaño del token, y lees .
Asi siempre estaras leyendo un token completo salvo cuando no toques el EOF con el.

ejemplo:

EJEMP[EOF]

leemos EJEMP y vemos un EOF.
Retrocedemos 5 BYTE.
leemos de nuevo
leemos EJEMPL[EOF]
retrocedemos 6 byte
leemos EJEMPLO DE[EOF]
luego el token EJEMPLO es valido por que no hemos leido EOF justo despues.

que te parece?  :hola:

alex1510

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Leer linea txt
« Respuesta #2 en: Sábado 28 de Noviembre de 2009, 22:21 »
0
Me parece buena idea. Yo he conseguido solucionarlo, retrocediendo hasta que se encuentre un n, es decir, hasta el final de la linea anterior. No se que te parecera así. Me funciona bastante bien asi. Un saludo y gracias por responder