Tema 10 FICHEROS Temario La estructura de datos

  • Slides: 10
Download presentation
Tema #10. FICHEROS

Tema #10. FICHEROS

Temario: • La estructura de datos de archivo. Archivos de texto y archivos binarios

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.

CONCEPTO DE FICHERO Un fichero o archivo es una colección de datos, que se

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.

MODOS DE ACCESO Modo Operación Lectura (r) Leer, posicionarnos, conocer su estado, otros procesos

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

DECLARACION DE FICHEROS FILE * nom_ var_fich;

DECLARACION DE FICHEROS FILE * nom_ var_fich;

FUNCIONES DE MANIPULACION DE FICHEROS APERTURA / CIERRE FILE * fopen (const char *path,

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 r+ w w+ a b t Abre un fichero para lectura. Si el fichero no existe devuelve error. Lectura/Ecritura, posicionado al principio del fichero Abre un fichero para escritura. Si el fichero no existe se crea, si el fichero existe se destruye y se crea uno nuevo. Lectura/Escritura, trunca el fichero a 0 bytes Abre un fichero para añadir datos al final del mismo. Si no existe se crea. El fichero es de tipo binario. El fichero es de tipo texto. Si no se pone ni b ni t el fichero es de texto.

FUNCIONES DE MANIPULACION DE FICHEROS APERTURA / CIERRE EJEMPLOS: Fl. LE *fich; if ((fich

FUNCIONES DE MANIPULACION DE FICHEROS APERTURA / CIERRE EJEMPLOS: Fl. LE *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);

FUNCIONES DE MANIPULACION DE FICHEROS Lectura y escritura de caracteres ( fgetc – fputc

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

Ejemplo: Copiar un fichero de texto en otro. #include <stdio. h> int main (

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"); c = fgetc(fin); } fclose (fin); fclose (fout); return 0; }

FUNCIONES DE MANIPULACION DE FICHEROS RECORRIDO DE UN FICHERO SECUENCIAL int feof(FILE *stream); Devuelve

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 (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