Page 327

Cap´ıtulo 5

Ficheros —Me temo que s´ı, se˜ nora —dijo Alicia—. No recuerdo las cosas como sol´ıa. . . ¡y no conservo el mismo tama˜ no diez minutos seguidos! Lewis Carroll, Alicia en el Pa´ıs de las Maravillas. Acabamos nuestra introducci´ on al lenguaje C con el mismo objeto de estudio con el que finalizamos la presentaci´ on del lenguaje Python: los ficheros. Los ficheros permiten guardar informaci´on en un dispositivo de almacenamiento de modo que ´esta ((sobreviva)) a la ejecuci´on de un programa. No te vendr´ıa mal repasar los conceptos introductorios a ficheros antes de empezar.

5.1.

Ficheros de texto y ficheros binarios

Con Python estudiamos u ´nicamente ficheros de texto. Con C estudiaremos dos tipos de ficheros: ficheros de texto y ficheros binarios.

5.1.1.

Representaci´ on de la informaci´ on en los ficheros de texto

Ya conoces los ficheros de texto: contienen datos legibles por una persona y puedes generarlos o modificarlos desde tus propios programas o usando aplicaciones como los editores de texto. Los ficheros binarios, por contra, no est´an pensados para facilitar su lectura por parte de seres humanos (al menos no directamente). Pongamos que se desea guardar un valor de tipo entero en un fichero de texto, por ejemplo, el valor 12. En el fichero de texto se almacenar´a el d´ıgito ’1’ (codificado en ASCII como el valor 49) y el d´ıgito ’2’ (codificado en ASCII como el valor 50), es decir, dos datos de tipo char. A la hora de leer el dato, podremos leerlo en cualquier variable de tipo entero con capacidad suficiente para almacenar ese valor (un char, un unsigned char, un int, un unsigned int, etc.). Esto es as´ı porque la lectura de ese dato pasa por un proceso de interpretaci´on relativamente sofisticado: cuando se lee el car´ acter ’1’, se memoriza el valor 1; y cuando se lee el car´acter ’2’, se multiplica por 10 el valor memorizado y se le suma el valor 2. As´ı se llega al valor 12, que es lo que se almacena en la variable en cuesti´ on. Observa que, codificado como texto, 12 ocupa dos bytes, pero que si se almacena en una variable de tipo char ocupa 1 y en una variable de tipo int ocupa 4. Un problema de los ficheros de texto es la necesidad de usar marcas de separaci´on entre sus diferentes elementos. Si, por ejemplo, al valor 12 ha de sucederle el valor 100, no podemos limitarnos a disponer uno a continuaci´ on del otro sin m´as, pues el fichero contendr´ıa la siguiente secuencia de caracteres: 1

2

1

0

0

¿Qu´e estamos representando exactamente? ¿Un 12 seguido de un 100 o un 1 seguido de un 2100? ¿Y por qu´e no un 1210 seguido de un 0 o, sencillamente, el valor 12100, sin m´as? Las marcas de separaci´ on son caracteres que decide el programador, pero es corriente que se trate de espacios en blanco, tabuladores o saltos de l´ınea. El valor 12 seguido del valor 100 podr´ıa representarse, pues, con cualquiera de estas secuencias de caracteres: Introducci´ on a la Programaci´ on con C

321

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement