Pages - Menu

lunes, 17 de junio de 2013

Curso básico de C 10/10: Ficheros

Ha pasado casi dos meses desde que comenzamos con el cursobásico de C, donde hemos podido empezar completamente desde cero, realizando innumerables ejercicios y yendo paso a paso ha llegado el momento de llegar a la recta final del curso con el último capítulo del mismo: Los ficheros.

Ficheros en C
Foto tomada de freedigitalphotos.net

C ofrece la posibilidad de manejar ficheros tanto de texto como binarios, gracias a esto seremos capaces de almacenar toda la información que vayamos manejando con cualquier programa.

Los ficheros de texto son cualquier fichero que contiene caracteres alfanuméricos que se pueden leer desde un editor de texto normal y corriente. Los ficheros binarios contienen los caracteres 0 y 1, desde los cuales se puede leer cualquier tipo de información.

Operaciones ficheros de texto.

Para operar con ficheros es necesario utilizar ciertos elementos de la librería stdio.h.

Abrir y cerrar un fichero.

Para abrir un fichero se utiliza la instrucción fopen de la siguiente forma:

FILE * fopen (ruta_fichero,modo_apertura);

Ambos parámetros son de tipo char, el tipo de apertura son los siguientes:

“r” – El fichero se abre en modo lectura.
“w” – El fichero se abre en modo escritura. En ese modo se comienza a escribir el fichero desde cero, si el fichero no existe se creará.
“a” – El fichero se crea en modo adición. El fichero se abre en modo escritura y se comenzará a escribir a partir del mismo.

Con la instrucción fclose se cierra el fichero, la llamada sería la siguiente:

int fclose (FILE *nombre_fichero);

Leer un fichero.

Se utilizará la instrucción fscanf de la siguiente forma:

int fscanf (FILE *nombre_fichero, formato, direcciones_memoria);

Como parámetros se pasa el nombre del fichero, el formato de escritura y las direcciones donde se escribirá el contenido.

Escribir un fichero.

Se utiliza la instrucción fprintf de la siguiente forma:

int fprintf (FILE *nombre_fichero, formato, valores);

Como parámetros se utilizará el fichero, el formato de lectura y las variables donde se van a almacenar.

Comprobar final del fichero.

Para poder comprobar si hemos llegado al final del fichero utilizaremos la instrucción feof de la siguiente forma:

int feof (FILE *nombre_fichero);

Operaciones ficheros binarios.

Aunque el concepto de fichero es básicamente el mismo, las operaciones también son más o menos similares, salvo por algunos matices, veamos las operaciones.

Abrir un fichero.

Para abrir un fichero se utiliza la mismo instrucción que con el fichero de texto, fopen, el modo de apertura varía un poco con respecto a los ficheros de texto.

“rb” – Abre el fichero binario en modo lectura.
“wb” – Abre el fichero binario en modo escritura.
“ab” – Abre el fichero binario en modo adición.

La forma de usar el fichero es exactamente la misma:

FILE * fopen (ruta_fichero,modo_apertura);

Cerrar un fichero.

La función que se encarga del cerrado del fichero es exactamente la misma, fclose.

int fclose (FILE *nombre_fichero);

Leer un fichero.

Ahora la forma de operar con el fichero es la siguiente:

int fread( void * direccion, int tam, int numdatos, FILE * fichero );

Con fread se pasa por parámetros una dirección de memoria, un número de bytes que ocupa, los datos a leer y el fichero.

Escribir un fichero.

Al igual que con la lectura, la escritura se realiza de la siguiente forma:

int fwrite( void * direccion, int tam, int numdatos, FILE * fichero );

Al igual que con la lectura, se pasa como parámetros la dirección de memoria, el tamaño que ocupa, el número de datos y el fichero donde se va a escribir.

Fin de fichero.

Al igual que en los ficheros de texto, se utiliza la función feof:

int feof (FILE *nombre_fichero);

Conclusiones.

Con este capítulo hemos terminado el curso básico de C. Se han quedado muchas cosas en el tintero, muchos ejercicios que realizar (y que se irán realizando en futuros posts) y muchas cuestiones que tratar.

Ahora es hora de comenzar una nueva etapa, toca comenzar con programación orientada a objetos, ver todas sus características y todas sus posibles aplicaciones. Pero C nunca lo abandonaremos, al igual que no abandonaremos ninguna de las plataformas y lenguajes que tratemos.

El siguiente paso con C será un curso intermedio de C y terminar de ver las estructuras dinámicas de datos que faltan, podríamos ver programación gráfica o de red entre otras cosas, pero todo eso se irá tratando en el futuro, tenedlo por seguro.

¿Qué programas realizarías usando ficheros?