[C con Clase] Estructuras en archivos de texto??

Salvador Pozo salvador en conclase.net
Mie Jul 2 08:29:52 CEST 2008


El pasado 2008-07-02 00:43:43, Carolina Herrera escribió:
 
Hola:

CH> Espero no molestar con tantas preguntas, 

Aquí no melesta ninguna pregunta... siempre que no se aparte mucho del tema que ocupa a la lista. :-)

CH> pero revisando unos programas que me prestaron veo que hacen algo como esto:
CH> struct cliente
CH> {
CH>     char ape[60], nomb[50], dire[40], char fono[10];
CH> };
CH> ...lo que me pareció extraño es que al crear el archivo para esta estructura escribe lo siguiente:
CH> clientes = fopen("clientes.dat", "w");
CH> en lugar de:
CH> cliente = fopen("clientes.dat", "wb");

Tienes razón, se debe usar la opción "wb". Sobre todo si estás usando Borland C++ (en la versión 3), para DOS.

Sin embargo, en otros sistemas operativos, como Unix o Linux; las opciones "b" y "t" no existen, y todos los ficheros son binarios.

La diferencia es que en los ficheros de texto no se permiten todos los valores ASCII, ya que algunos se interpretan de formas especiales. Por ejemplo, el 0x1A se usa para marcar el fin de fichero. Si por alguna razón existe ese carácter en un fichero abierto con la opción "t", el programa no será capaz de leer más allá de esa posición.

En este caso pudiera carecer de importancia, dependiendo de cómo se rellenen los valores de la estructura, ya que todos los campos son de texto. Pero si alguno fuera numérico, podrían aparecer caracteres "prohibidos", y el programa dejaría de funcionar.

http://c.conclase.net/ficheros/index.php?cap=001

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase