Errores ocultos en archivos de texto .txt

Resuelto
lativ -  
 lativ -
Hola,
Configuración: Windows 7 / Chrome 51.0.2704.84
Tengo un problema curioso: he escrito yo mismo (en Delphi) un programa que procesa archivos de texto para extraer diferentes informaciones. Todo funcionaba muy bien durante unos años, y de repente, falló. He examinado mi archivo de texto y he logrado identificar la línea que provocaba el fallo; al eliminarla, el software funcionaba de nuevo. Entonces reescribí a mano la línea que provocaba el fallo (verificando cuidadosamente carácter por carácter), ¡y ahora ya no falla!
¿Explicación del misterio?

3 réponses

Usuario anónimo
 
Sin el archivo erróneo en cuestión, será complicado responder.

Quizás sea un carácter no imprimible, un problema de codificación, un copiar/pegar con un error de escritura (disco duro defectuoso), puede venir de muchos lugares.

Si vuelves a tener este error, copia el archivo defectuoso ANTES de corregir el error para poder hacer una comparación byte por byte posteriormente.
0
lativ
 
No creo que se trate de un fallo del disco duro o similar, ya que el archivo de texto en cuestión se abre sin problemas en el bloc de notas. ¿Ignoraría el bloc de notas los errores CRC? He conservado el archivo defectuoso y he intentado una comparación byte a byte con Hexedit, la zona sospechosa parece idéntica.
0
Usuario anónimo
 
¿Podrías publicar estos dos archivos?
0
lativ > Usuario anónimo
 
El archivo que provoca el error es: http://vital.chauve.free.fr/calendtmp.txt
El archivo corregido es: http://vital.chauve.free.fr/calend.txt
Los archivos son diferentes a partir de la línea 107, pero no son las líneas 107 y siguientes las que provocaban el error, son las líneas 102 a 104.
El archivo de texto contiene plazos a cumplir (hora en formato hh:mm) o ya cumplidos (hora en formato hhhmm), y el software tiene la función de enviar una advertencia si existen plazos no cumplidos a menos de ocho días. Después de la advertencia (si es el caso), el software propone abrir el archivo de texto en el bloc de notas para actualizarlo.
Gracias por su interés en mi problema.
0
Usuario anónimo
 
El primer enlace lleva a un error 404.
0
lativ > Usuario anónimo
 
efectivamente hay un error, las URL correctas son:
http://vital.chauve.free.fr/tmp/calendtmp.txt
y
http://vital.chauve.free.fr/tmp/calend.txt
0
Usuario anónimo
 
Hay una diferencia de codificación entre los archivos:

(a continuación, "error" es el archivo que provoca el error y "clean" el archivo sin error):

$file error
error: ISO-8859 text
$file clean
clean: Non-ISO extended-ASCII text, with CRLF line terminators


Cuando se hace un diff binario:



Se puede ver que la versión "clean" utiliza "0D 0A" para un retorno de línea -> windows
Mientras que la versión "error" utiliza únicamente "0A", lo que se asemeja más a unix.

¿Los archivos han sido creados en máquinas diferentes? ¿O en diferentes editores de texto que cada uno lo hace a su manera?
0
lativ
 
gracias por todo.
Sí hay algunas diferencias al principio del archivo, pero no eran ellas las que provocaban el error, en el offset 1158h hay un espacio delante de caracteres de tabulación, así que la línea comienza con un espacio, lo que no le gusta a mi programa, que no está lo suficientemente blindado. Por supuesto, acabo de corregirlo.
Pero lo que es traicionero es que si se pone un espacio antes de una tabulación, ¡el bloc de notas no muestra ninguna diferencia!
0