funcion leer tabla codificacion

funcion leer tabla codificacion

de Rafael Santiago Martinez Rojas -
Número de respuestas: 3

Tengo una duda acerca de como leer y guardar, no se si usar fread o fscanf, segun vi fread es mas "facil" de usar pero necesita que el archivo este en binario.

En respuesta a Rafael Santiago Martinez Rojas

Re: funcion leer tabla codificacion

de Gregory Randall -
el archivo tabla de codificacion es un archivo de texto (lo pueden leer con un editor de texto plano sin problema). Deben leerlo como texto con formato, o sea con fscanf.
En respuesta a Gregory Randall

Re: funcion leer tabla codificacion

de Luis Guillermo Repetto Marci -
Gregory, creo que no entoendo o hay una contradicción en la letra. En esta respuesta decís que se debe usar fscanf. Sin embargo, en la letra última (25 de abril) se expresa (ver especialmente "(y no fscanf)":
"Otra llamada al programa podr´ıa ser:
./obligatorio2 D ArchivoCodificado ArchivoDecodificado.txt TablaDeCodificacion.txt
En ese caso el programa obligatorio2 es llamado para decodificar el archivo llamado ArchivoCo-
dificado y generar el archivo decodificado que lleva por nombre ArchivoDecodificado.txt.
Noten que en este caso NombreArchivo.txt y ArchivoDecodificado.txt deben ser idéntcos.
El archivo codificado debe escribirse como una secuencia binaria. Para ello deben utilizar las
funciones fwrite (y no fprintf) para la tabla de codificación y fputc o fputchar para el
mensaje. Naturalmente deber´a untilizar las funciones complementarias fread (y no fscanf) y
fgetc o fgetchar respectivamente."
Agradezco aclarar.
Luis
En respuesta a Rafael Santiago Martinez Rojas

Re: funcion leer tabla codificacion

de Alberto Daniel Sanchez Latronico -

Hola Rafael, 

Te aclaro algo, todos los archivos son binarios, la unidad minima que contienen todos los archivos es el byte.el famoso paquetito de 8 bits.

Un archvio puede contener 0 bytes ( el archivo esta vacio ) o x cantidad de bytes.(( los archivos nunca son pesados indepeendientemente de su longitud ). Los bytes en un archivos tienen orden , no por valor sino por posicion ,  es decir

primer byte segundo byte .....

tenemos primer byte y ultimo byte ( final del archivo ).

y te repito son todos binarios.

el punto es cual es la interpretacion que vos le vas a dar a esos valores de bytes( el rango es de 0 a 255 en un unsigned byte ).

la funcion scanf y sus derivados ( fscanf ) es un poco problematica y te puede generar algunos problemitas si lees directamente del archivo,

lo mejor o mas aconsejable es leer con fgets un buffer ( que puede ser de 256 byes  unsigned char buff[256] ,)

y sobre este buff lo usas con sscanf ;    sscanf( buff , ......

fijate con

$man fgets

$man sscanf

Saludos Daniel.