Blog dedicado exclusivamente a la información con respecto al titulo de este

jueves, 13 de julio de 2017

Apertura y cierre de ficheros




Hasta ahora, para obtener y almacenar datos de una estructura de datos bastaba con realizar asignaciones a la misma. Para utilizar los ficheros el procedimiento es distinto.

Antes de usar un fichero es necesario realizar una operación de apertura del mismo; posteriormente, si se desea almacenar datos en él hay que realizar una operación de escritura y si se quiere obtener datos de él es necesario hacer una operación de lectura. Cuando ya no se quiera utilizar el fichero se realiza una operación de cierre del mismo para liberar parte de la memoria principal que pueda estar ocupando (aunque el fichero en sí está almacenado en memoria secundaria, mientras está abierto ocupa también memoria principal).

La instrucción más habitual para abrir un fichero es :

FILE * fichero;

fichero = fopen ( nombre-fichero, modo);

La función fopen devuelve un puntero a un fichero que se asigna a una variable de tipo fichero. Si existe algún tipo de error al realizar la operación, por ejemplo, porque se desee abrir para leerlo y éste no exista, devuelve el valor NULL.

El nombre-fichero será una cadena de caracteres que contenga el nombre (y en su caso la ruta de acceso) del fichero tal y como aparece para el sistema operativo.

El modo es una cadena de caracteres que indica el tipo del fichero (texto o binario) y el uso que se va ha hacer de él lectura, escritura, añadir datos al final, etc. Los modos disponibles son:

* r abre un fichero para lectura. Si el fichero no existe devuelve error.
* w abre un fichero para escritura. Si el fichero no existe se crea, si el
fichero existe se destruye y se crea uno nuevo.
* a abre un fichero para añadir datos al final del mismo. Si no existe
se crea.
* + símbolo utilizado para abrir el fichero para lectura y escritura.
* b el fichero es de tipo binario.
* t el fichero es de tipo texto. Si no se pone ni b ni t el fichero es debtexto. Los modos anteriores se combinan para conseguir abrir el fichero en el modo adecuado.

Por ejemplo, para abrir un fichero binario ya existente para lectura y escritura el modo será "rb+ "; si el fichero no existe, o aun existiendo se desea crear, el modo será " wb+ ". Si deseamos añadir datos al final de un fichero de texto bastará con poner "a", etc.

La forma habitual de utilizar la instrucción fopen es dentro de una sentencia condicional que permita conocer si se ha producido o no error en la apertura, por ejemplo:

 FlLE *fich;
if ((fich = fopen("nomfich.dat", "r")) == NULL)
{ /* control del error de apertura * /
printf ( " Error en la apertura. Es posible que el fichero no exista \n ");
}

El resultado de fopen se almacena en la variable fich y después se compara fich con NULL para saber si se ha producido algún error. Toda la operación se puede realizar en la misma instrucción, tal y como aparece en el ejemplo.

Cuando se termine el tratamiento del fichero hay que cerrarlo; si la apertura se hizo con fopen el cierre se hará con fclose (fich); Para utilizar las instrucciones de manejo de ficheros que veremos en esta unidad es necesario incluir la librería <stdio.h>.

Share:

Related Posts:

0 comentarios:

Publicar un comentario

BTemplates.com

Colaboradores

Con la tecnología de Blogger.