12
Entrada y salida Gestión de ficheros

Entrada y salida

  • Upload
    josiah

  • View
    50

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Entrada y salida

Entrada y salida

Gestión de ficheros

Page 2: Entrada y salida

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

Page 3: Entrada y salida

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>

Page 4: Entrada y salida

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.

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte n EOF

Page 5: Entrada y salida

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

Page 6: Entrada y salida

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.

Page 7: Entrada y salida

Abrir un fichero fopen

FILE *variable_descriptor;

variable_descriptor=fopen(nombre_fichero, modo_apertura);

Modo de apertura Significado

“a” Abre el fichero para añadir datos. Los datos nuevos se añaden al final del fichero. Si el fichero no existe se crea.

“r” Abre el fichero para lectura. El fichero debe existir.

“w” Abre el fichero para escritura. Los datos nuevos se escriben desde el principio. Si el fichero no existe se crea.

“a+” Abre el fichero para lectura y para añadir datos al final del mismo. Si el fichero no existe se crea.

“r+” Abre el fichero para lectura y escritura. Los datos se escriben desde el principio. El fichero debe existir.

“w+” Abre el fichero para lectura y escritura. Los datos se escriben desde el principio. Si el fichero no existe se crea.

Page 8: Entrada y salida

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);

Page 9: Entrada y salida

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 */

}

Page 10: Entrada y salida

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.

Page 11: Entrada y salida

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);}

Page 12: Entrada y salida

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);}