120 likes | 325 Views
Entrada y salida. Gestión de ficheros. Interés. Se dispone de una gran cantidad de datos que han de ser procesados por un programa con el objeto de sacar conclusiones sobre ellos.
E N D
Entrada y salida Gestión de ficheros
Interés • Se dispone de una gran cantidad de datos que han de ser procesados por un programa con el objeto de sacar conclusiones sobre ellos. • Se ha construido un programa que trata cierta información y ha de disponer de ella en otras ejecuciones del mismo, y en diferentes sesiones. • Muchas veces, la memoria del ordenador es demasiado limitada como para mantener todos los datos con los que ha de trabajar un programa, con lo cual, es necesario realizar un almacenamiento provisional de parte de los datos en el disco mientras el programa trabaja con otra parte de los datos
Presentación • Se van a mostrar aquellas funciones de librería en C que permiten a un programa comunicarse con los dispositivos de almacenamiento secundario de un sistema informático (discos fijos (duros), discos removibles, etc.). • Estas funciones se encuentran en una librería denominada stdio.h y se debe cargar al principio del programa con la instrucción: #include <stdio.h>
Definición fichero • Archivo o fichero: Cualquier conjunto de datos almacenado en un dispositivo de almacenamiento secundario, independientemente de la información que represente (programas, textos, gráficos, etc.), está agrupado un una estructura de datos llamada fichero o archivo. • Un archivo o fichero es una cadena de bytes consecutivos terminada por una carácter especial llamado EOF.
Acceso Secuencial y Acceso Aleatorio • Acceso secuencial. Es posible leer o escribir un cierto número de datos comenzando siempre desde el principio del archivo. También es posible añadir datos a partir del final del archivo. • Acceso aleatorio. permite acceder directamente a cualquier posición dada de un archivo para actualizar los valores contenidos a partir de dicho punto
Apertura y cierre de Archivos con Acceso Secuencial • Los ficheros, es necesario abrirlos antes de extraer o introducir datos. • Después de llevar a cabo todas las operaciones de lectura/escritura sobre ellos es obligatorio cerrarlos, de lo contrario puede perderse toda la información contenida en ellos. • Además se precisa una variable-descriptor con la que hacer referencia al fichero dentro del programa.
Abrir un fichero fopen FILE *variable_descriptor; variable_descriptor=fopen(nombre_fichero, modo_apertura);
Cerrar un fichero fclose • Para cerrar un fichero se emplea la función fclose, especificando entre paréntesis la variable que hace referencia al fichero dentro del programa: fclose(variable_descriptor);
Ejemplo de apertura y cierre #include <stdio.h> main () { FILE *pf; /* Declaración de la variable descriptor de fichero */ pf = fopen(“fichero.txt”,”w”); /* Apertura del fichero para escritura */ /* Aquí escribiríamos las operaciones de lectura/escritura sobre el fichero */ fclose(pf); /* Cierre del fichero */ }
Instrucciones para leer y escribir en ficheros fprintf y fscanf fprintf(variable_descriptor,tipos_de_datos,variables); fscanf(variable_descriptor,tipos_de_datos,variables); • variable_descriptor: variable de tipo FILE que identifica al fichero. • tipos_de_datos: los tipos de datos de los diferentes datos que se van a guardar en el fichero o a leer de este. • variables: nombres de las variables que contienen los datos a escribir en el fichero (escritura), o en el caso de lectura, variables donde se va a depositar el dato leído del fichero.
Ejemplo escritura #include <stdio.h> main() { FILE *pf; double precio; int unidades; printf("Introduce la cantidad y el precio\n"); scanf(“%d%lf",&unidades,&precio); pf = fopen(“fichero.txt","w"); fprintf(pf,"%d %lf ",unidades,precio);//el espaciado es importante fclose(pf); }
Ejemplo lectura #include <stdio.h> main() { FILE *pf; double precio; int unidades; pf = fopen(“fichero.txt","r"); fscanf(pf,"%d%lf",&unidades,&precio); printf("cantidad: %d y precio: %lf\n“, unidades,precio); fclose(pf); }