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
1
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
2
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
3
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
4
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:
Modo de Apertura
"a"
"r"
"w"
"a+"
"r+"
"w+"
Significado
Abre el fichero para añadir datos al final del fichero. Si
el fichero no existe, se crea.
Abre el fichero para lectura. El fichero debe existir.
Abre el fichero para escritura. Los datos se escriben
desde el principio. Si el fichero no existe, se crea.
Abre el fichero para lectura y para añadir datos al final
del mismo. Si el fichero no existe, se crea.
Abre el fichero para lectura y escritura. Los datos se
escriben desde el principio y el fichero debe existir.
Abre el fichero para lectura y escritura. Los datos se
escriben desde el principio y si el fichero no existe se
crea.
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
5
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:
int fclose(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
6
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)
•
•
•
•
•
•
int fgetc(FILE *puntero_a_archivo);
int fputc(int car, FILE * puntero_a_archivo);
char * fgets(char *cadena, int tam_cad, FILE *puntero_a_archivo);
int fputs(const char *cadena, FILE *puntero_a_archivo);
int fprintf(FILE *puntero_a_archivo, “texto + modificadores”, variables);
int fscanf(FILE *puntero_a_archivo, “modificadores”, dir. variables);
Rev 1.1 - 25/5/2011 by JM
7
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>
int main(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); }
else printf("!!!Exito!!!");
}
Rev 1.1 - 25/5/2011 by JM
8
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_t fwrite(void *estructura, size_t tam, size_t numero, FILE *archivo);
size_t fread (void *estructura, size_t tam, size_t numero, FILE *archivo);
size_t fseek(FILE *archivo, long posicion, int origen);
int ftell (FILE *archivo);
Rev 1.1 - 25/5/2011 by JM
9
Descargar

TPN6-Archivos