La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema #10. FICHEROS.

Presentaciones similares


Presentación del tema: "Tema #10. FICHEROS."— Transcripción de la presentación:

1 Tema #10. FICHEROS

2 Temario: La estructura de datos de archivo. Archivos de texto y archivos binarios Operaciones básicas sobre archivos. Los recursos de la biblioteca Standard de C para el tratamiento de archivos.

3 CONCEPTO DE FICHERO Un fichero o archivo es una colección de datos, que se almacenan de forma permanente en la memoria auxiliar. FUNCIONES BASICAS(stdio.h): 1. Crear un fichero. 2. Leer y Escribir en un fichero. 3. Abrir un fichero. 4. Posicionarnos en el fichero y conocer su estado.

4 MODOS DE ACCESO Modo Operación Lectura (r)
Leer, posicionarnos, conocer su estado, otros procesos pueden leer (depende del sistema) Escritura (w) Escribir, posicionarnos, otros procesos no pueden leer (fichero bloqueado) Lectura/Escritura (r/w) Leer, posicionarnos, escribir, el fichero está bloqueado

5 DECLARACION DE FICHEROS
FILE * nom_ var_fich;

6 FUNCIONES DE MANIPULACION DE FICHEROS
APERTURA / CIERRE FILE * fopen (const char *path, const char *mode); int fclose (FILE *stream); EJEMPLO: FILE * fichero; fichero = fopen ( nombre_fichero, modo); fclose (fichero); MODOS r Abre un fichero para lectura. Si el fichero no existe devuelve error. r+ Lectura/Ecritura, posicionado al principio del fichero w Abre un fichero para escritura. Si el fichero no existe se crea, si el fichero existe se destruye y se crea uno nuevo. w+ Lectura/Escritura, trunca el fichero a 0 bytes a Abre un fichero para añadir datos al final del mismo. Si no existe se crea. 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 de texto.

7 FUNCIONES DE MANIPULACION DE FICHEROS
APERTURA / CIERRE EJEMPLOS: FlLE *fich; if ((fich = fopen("nomfich.txt", "r")) == NULL) { /* control del error de apertura * / printf ( " Error en la apertura. Es posible que el fichero no exista \n "); } fclose (fich);

8 FUNCIONES DE MANIPULACION DE FICHEROS
Lectura y escritura de caracteres ( fgetc – fputc ) y cadenas ( fgets – fputs ) carácter_leido = fgetc (fichero); fgetc lee un carácter del fichero, el carácter leído se almacenará en carácter leído. Cuando se llega al final del fichero devuelve EOF. fputc (car, fichero); fputc escribe el carácter car en el fichero. Devuelve el carácter escrito o EOF en caso de error. fgets (cadena_leida, num_caracteres, fichero); fputs (cadena_escribir, fichero);

9 Ejemplo: Copiar un fichero de texto en otro.
#include <stdio.h> int main ( ) { FILE *fin *fout; char c, x; if (((fin = fopen(“DATOSIN.txt", “rt")) == NULL) || ((fout = fopen(“DATOSOUT.txt" , “wt")) == NULL)) { if (fout ! = NULL) fclose (fout) ; if (fin ! = NULL) fclose (fin) ; printf (“Error en la apertura de ficheros de salida \n” ); return 1; } c = fgetc(fin); while (c != EOF) { x = fputc (c, fout); if (x! = c) printf ("Error de escritura"); fclose (fin); fclose (fout); return 0;

10 FUNCIONES DE MANIPULACION DE FICHEROS
RECORRIDO DE UN FICHERO SECUENCIAL int feof(FILE *stream); Devuelve el estado para el fichero apuntado por el manejador stream. Si se ha llegado al final del fichero devuelve true (1), o false (0) en otro caso. int fseek(FILE *stream, long offset, int whence); Permite cambiar el posicionamiento en un fichero apuntado por stream. Se indica la nueva posición mediante offset, dependiendo de whence.    whence (Tipo de posicionamiento) SEEK_SET Relativo al principio del fichero SEEK_CUR Relativo a la posición actual SEEK_END Relativo al final del fichero


Descargar ppt "Tema #10. FICHEROS."

Presentaciones similares


Anuncios Google