PDA

Ver la Versión Completa : Comandos especiales {$H} en ficheros de texto


morodo
27-01-2007, 22:10:17
Hola a todos!!
Os pregunte hace poco un problema que tenia con freepascal en la lectura de caracteres desde un archivo de texto que seoane me logro solucionar (Gracias ^^) comentandome que abriera el fichero de texto como binario y leyera byte a byte.
Ahora el compresor de texto (Algoritmo de Haffman) funciona perfectamente.En su funcion de compresor no da ningun tipo de problema, pero en su funcion de descompresion, si el texto ocupa 255 caracteres no da ningun problema, pero en cuanto son 256 caracteres los que se kieren descomprimir, en el archivo de salida no hay ninguno, si introducimos un texto de 257 caracteres, en el fichero de salida aparece un caracter, con 258 dos... etc.
Cualquier texto que tenga un numero de caracteres multiplo de 256, al descomprimir no aparece ningun caracter tampoco.
Por eso tengo en la cabeza que puede ser un problema con los comandos {$H} sobre strings o algo del estilo.
Por favor tengo que arreglarlo para el lunes asi que si a alguien se le ocurre alguna solucion, no duden en responer!!
Muchas gracias!:)

P.D. Adjunto el programa por si alguien kiere echarle un vistazo, el archivo parametros2.pas es una unit basada en la libreria getops.pas para recibir comandos por teclado.
./compresor -c --verbose pide el texto a comprimir
./compresor -c -f texto.txt --verbose comprime texto.txt en datoscomp.dat
./compresor -e -f datoscomp.dat descomprime el fichero comrpimido (datoscomp.dat por defeto)