120 likes | 342 Views
Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 6. Tema: Archivos. Archivos o ficheros. Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 6. Tema: Archivos. DEFINICION.
E N D
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. Archivos o ficheros Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. DEFINICION Un archivo o fichero es una cadena de bytes consecutivos terminada por una carácter especial llamado EOF (End Of File ), y nos servirá para el almacenamiento permanente de grandes cantidades de datos. Byte 1 Byte 2 Byte 3 .…......... Byte n [EOF] Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. TIPOS DE ARCHIVOS Texto: Conformados por caracteres ASCII. Legibles y modificables mediante editores de texto. Legibles por el usuario Portables Ocupan mucho espacio Binarios: Guardan la copia exacta de la memoria del ordenador. Sólo legibles por programas que conozca que tipos de datos se guardan y en que forma. Eficientes (Menos espacio que archivos texto) Ideales para el manejo de estructuras compuestas No portables. Dependen de la plataforma. Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. OPERACIONES CON ARCHIVOS PASO 1 Para operar con archivos es necesario declarar al inicio del programa una variable puntero especial de tipo FILE cuyo nombre es asignado por el usuario y servirá para hacer referencia al archivo durante todo el programa. Ej: #include<stdio.h> FILE *parch; -> puntero que hace referencia al archivo PASO 2 Luego de definir un puntero tipo FILE debemos abrir el archivo. Para esto debemos utilizar la función: FILE *fopen (char * nombre_completo_archivo, char *modo); Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. El nombre de un archivo esta compuesto por: ruta completa + nombre.extensión Ej: c:\Programas\Listado.txt El modo de apertura puede ser: La función devuelve el puntero al inicio del archivo si hubo éxito en la apertura del mismo o bien NULL si hubo algún error. Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. Finalmente siempre que trabajemos con archivos debemos cerrarlos utilizando la función: intfclose(FILE *puntero_al_archivo); Retorna: 0 – Si se cerró el archivo con éxito 1 – Si ocurrió un error al cerrar el archivo Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. FUNCIONES PARA TRATAMIENTO DE ARCHIVOS Funciones de Lectura y Escritura Secuencial (Archivos con formato) • intfgetc(FILE *puntero_a_archivo); • intfputc(intcar, FILE * puntero_a_archivo); • char * fgets(char *cadena, inttam_cad, FILE *puntero_a_archivo); • intfputs(constchar *cadena, FILE *puntero_a_archivo); • intfprintf(FILE *puntero_a_archivo, “texto + modificadores”, variables); • intfscanf(FILE *puntero_a_archivo, “modificadores”, dir. variables); Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. FUNCIONES PARA TRATAMIENTO DE ARCHIVOS Ejemplo Archivos de Texto #include <stdio.h> #include <stdlib.h> #include <ctype.h> intmain(void) { FILE *punt; char c; punt=fopen("datos.txt","w"); if (punt==NULL) { printf("\n Error – NO SE PUEDE ABRIR EL FICHERO"); return(1);} do { c = toupper(getchar()); putc(c, punt); } while (c != '\n'); if (fclose(punt) != 0) { printf("Error al cerrar el fichero"); return(1); } elseprintf("!!!Exito!!!"); } Rev 1.1 - 25/5/2011 by JM
Programación, Algoritmos y Estructuras de Datos.Introducción teórica al Trabajo Práctico 6.Tema: Archivos. FUNCIONES PARA TRATAMIENTO DE ARCHIVOS Funciones de Lectura y Escritura en Bloque (Archivos sin formato) • size_tfwrite(void *estructura, size_ttam, size_tnumero, FILE *archivo); • size_tfread(void *estructura, size_ttam, size_tnumero, FILE *archivo); • size_tfseek(FILE *archivo, long posicion, intorigen); • intftell(FILE *archivo); Rev 1.1 - 25/5/2011 by JM