Está en la página 1de 22

Universidad Nacional Tecnolgica del Cono Sur

Tema:

ARCHIVOS

Por: Frank Edmundo Escobedo Bailn

Sistemas de archivos

Interaccin entre la memoria principal, el microprocesador y los archivos

Analogas de archivos y archiveros

Analogas de archivos y archiveros

Analogas de archivos y archiveros

Analogas de archivos y archiveros

Analogas de archivos y archiveros

Analogas de archivos y archiveros

Analogas de archivos y archiveros

Analogas de archivos y archiveros

Clasificacin de los archivos


1. Dependiendo de la direccin del flujo de datos: De entrada De salida De entrada/salida 2. Dependiendo del tipo de valores permitidos a cada byte: De texto Binarios 3. Segn el tipo de acceso Archivos secuenciales Archivos de acceso aleatorio 4. Segn la longitud de registro Longitud variable Longitud constante: Mixtos

DEFINICIONES DE DATOS, REGISTROS Y ARCHIVOS


Datos: Bsicamente se refieren a los testimonios individuales relacionados con hechos, ya sean caractersticas de ciertos objetos de estudio o condiciones particulares de situaciones dadas. Los elementos individuales de los archivos se llaman datos o campos. Por ejemplo un cheque de un banco tiene los siguientes campos: Cuenta habiente, Nmero de cheque, Fecha, Persona a la que se le paga, Monto numrico, Monto con letra, Nota, Identificacin del banco, Nmero de cuenta y Firma. Cada campo es definido por un tipo de dato.

Registro: Es el conjunto completo de datos relacionados pertenecientes a una entrada.

Registro: Es el conjunto completo de datos relacionados pertenecientes a una entrada.

Archivo: En trminos computacionales es una coleccin de datos que tiene un nombre y se guardan en dispositivos de almacenamiento secundario, los cuales pueden ser magnticos, pticos, electrnicos, etc. P. ejem. Diskettes, discos duros, CDs, ZIP drives, flash drives, memory sticks, etc.

APERTURA DE UN ARCHIVO.
FILE *fopen(const char nombre_archivo, const char modo);

CIERRE DE UN ARCHIVO.
int fclose(FILE *F);

FUNCIONES DE MANEJO DE ARCHIVOS


size_t size_t fwrite(void fread(void char int FILE *puntero, fputs(const *fgets(char int*fopen(char fputc(int void int int intfclose(FILE size_t fgetc(FILE feof(FILE rewind(FILE char *cadena, caracter, *nombre, tamao, *cadena, *fichero); *fichero); *fichero); FILE int *fichero) size_t n, char FILE *fichero); FILE *modo); nregistros, *stream); *fichero);FILE *fichero);
sta funci n sirve para abrir y crear ficheros en disco. El valor de No retorno es un el Lafuncin fputs escribe una cadena encon un fichero. se aade Esta funcin escribe un carcter a un fichero. El Esta funci n est pensada para trabajar registros de longitud Esta funcin sirve para comprobar si se ha alcanzado el final del Es una funci n heredada de los tiempos de las cintas Esta funcin est los diseada para leer cadenas de caracteres. Leer Es importante cerrar ficheros abiertos antes de abandonar la aplicacin. puntero a una estructura FILE. Los par metros de entrada son: carcter de retorno de lnea ni el carcter nulo final. El valor de valor de retorno es el carcter escrito, si la constante. Es capaz de leer desde un fichero uno o varios registros de la Esta funci n tambi n est pensada para trabajar con registros fichero. Muy frecuentemente deberemos trabajar con todos los valores hasta n-1 caracteres o hasta que lea un retorno de lnea. En este magn ticas. Literalmente significa "rebobinar", y hace 1. nombre: unasirve cadena queeso. contiene un nombre de fichero vlido, esto depende Esta funcin para Cerrar un fichero almacena los datos que an retorno es y un nmero no negativo o EOF en en caso de error. Los Eldel operacin fue completada con xito, caso misma longitud a partir de una direcci n de memoria determinada. Esta funci n lee un car cter desde un fichero. El valor de almacenados en un archivo de forma secuencial, la de forma que suelen ltimo caso, el carcter de y retorno de lnea tambin es ledo. El sistema operativo que estemos usando. El nombre puede incluir el camino completo. de longitud constante forma pareja con fread. Es capaz estn en el buffer de memoria, y actualiza algunos datos de la cabecera delde referencia a que para volver al principio un archivo parmetros de entrada son la cadena a escribir y un puntero a la contrario ser EOF. Los parmetros de entrada usuario es responsable de asegurarse de que hay espacio suficiente para 2. modo: especifica en tipo de fichero que se abrir registros o se crear de ydesbordar el tipo de datos que tener los bucles para leer todos los datos de un archivo es permanecer parmetro n car nos permite limitar la lectura para evitar el retorno es el cter le do como un unsigned char convertido a escribir hacia un fichero uno o varios la misma longitud fichero que mantiene el sistema operativo. Adems permite que otros almacenado en cinta, hab a que rebobinarla. Eso es lo que estructura FILE del fichero donde se realizar la escritura. son el carcter a escribir, convertido a int y un contener informaci o n le da. puede contener, de texto binarios: leyendo mientras no se detecte el finvalor deuso. fichero. Esta funcin suele espacio disponible en la cadena . El deMuy retorno es un a la int . Si la no hay ning n car a cter disponible, el valor depuntero retorno es programas puedan abrir el fichero para su a menudo, los ficheros almacenados a partir de una hace sta funci n, sit el cursor de lectura/escritura al puntero a una estructura FILE del fichero en el que r: susarse lo lectura. El fichero debe existir. El valor de retorno es el n mero de registros le dos , no el n mero como prueba para verificar si se ha estructura alcanzado o no ese punto. cadena leda, si sees ley con xito, y es NULL siUn se detecta el final del no pueden ser compartidos por varios programas. valor de retorno cero EOF. El par metro un puntero a una FILE del fichero direcci n de memoria determinada. El valor de retorno es el principio del archivo. El par metro es un puntero a la de w: se abre para escritura, se crea un fichero nuevo o se sobreescribe si ya existe. se har la escritura. bytes. Los par metros son: un puntero a la zona de memoria donde se El valor de retorno es distinto de cero slo si no ha el fin fichero o si hay un error. Los parmetros son: lase cadena a leer, el que el fichero ha sido correctamente cerrado, si haalcanzado habido algn del que se har la lectura. indica a: a adir, se abre para escritura, el cursor se situa al final del fichero. Si el fichero n mero de registros escritos , no el n mero de bytes. Los estructura FILE del fichero que queremos rebobinar. almacenar n los datos ledos, el tama o de cada registro, el n mero de no de fichero. El parmetro es un puntero a la estructura FILE del fichero nmero de caracteres mximo a leer y un puntero a una estructura error, el valor deson: retorno es la constante EOF. El parmetro es un puntero a existe, se crea. par metros un puntero a registros a leer y un puntero a la estructura FILE del fichero del que se que queremos FILE del fichero del que se leer. estructura FILEverificar. del que queremos cerrar. la r+: lectura y escritura. Elfichero fichero debe existir. la zona de memoria donde se almacenarn los datos ledos, el lalectura lectura. har m w+: y escritura, se crea un fichero nuevo o se sobreescribe si ya existe. tama o de y cada registro, el mero de leer no y un a+: aadir, lectura escritura, el cursor se n sita al final del registros fichero. Si ela fichero existe, se crea.a la estructura FILE del fichero del que se har la lectura. puntero t: tipo texto, si no se especifica "t" ni "b", se asume por defecto que es "t" b: tipo binario.

FUNCIONES DE MANEJO DE ARCHIVOS


int int fscanf(FILE fflush(FILE fprintf(FILE *fichero); *fichero, *fichero, const const char char *formato, *formato, ...); ...); La funcin fscanf funciona igual de que scanf en cuanto a parmetros, pero Esta funci n fuerza la salida los datos acumulados en el buffer de la La funcin fprintf funciona igual que printf en cuanto a parmetros, pero la entrada se toma de mejorar un fichero en lugar del teclado. salida del fichero . Para las prestaciones del manejo de ficheros se salida se dirige a un fichero en lugar de a la pantalla. utilizan buffers, almacenes temporales de datos en memoria, las operaciones de salida se hacen a travs del buffer, y slo cuando el buffer se llena se realiza la escritura en el disco y se vaca el buffer. En ocasiones nos hace falta vaciar ese buffer de un modo manual, para eso sirve sta funcin. El valor de retorno es cero si la funcin se ejecut con xito, y EOF si hubo algn error. El parmetro de entrada es un puntero a la estructura FILE del fichero del que se quiere vaciar el buffer. Si es NULL se har el vaciado de todos los ficheros abiertos.

Manejo de Archivos. Ejemplo 1.


#include <iostream.h> #include <stdio.h> #include <fstream.h> void main() { char nombre[50]; char direccion[80]; long int telefono; int num_per; cout<<"Cuantas personas quiere guardar en su directorio?"; cin>>num_per; ofstream salida("h:\\Hola.txt"); for(int i=1; i<=num_per;i++) { cout<<"ingrese el nombre de la persona "<<i<<endl; gets(nombre); cout<<"ingrese la direccion de la persona "<<i<<endl; gets(direccion); cout<<"ingrese el telefono de la persona "<<i<<endl; cin>>telefono; salida<<nombre<<" "<<direccion<<" "<<telefono<<endl; } salida.close(); //output.close(); }

#include <iostream.h> #include <conio.h> #include <fstream.h> void mostrar() { FILE *fichero; fichero = fopen("h:\prueba.txt", "r"); while(!feof(fichero)) fputc(fgetc(fichero), stdout); fclose(fichero); } void guardar() { ofstream archivo; archivo.open("h:\prueba.txt"); archivo << "Universidad" << endl; archivo << "Nacional" << endl; archivo << Tecnologica del Cono Sur" << endl; archivo.close(); } void main() { clrscr(); mostrar(); getch(); }

Manejo de Archivos. Ejemplo 2.


STREAMS

Leer archivos
#include <iostream.h> #include <fstream.h> void main() { ifstream fichero("h:\\hola.txt"); char c; while(fichero.get(c)) { cout.put(c); fichero.clear(); // (1) } fichero.close(); }

#include <iostream.h> #include <fstream.h> #include <stdio.h> #include <stdlib.h> void main() { int numero[50]; int i=0, cant=0; char cadena[128]; ifstream fe("h:\\hola.txt"); while(!fe.eof()) { fe >> cadena; //cout << cadena << endl; numero[i]=atoi(cadena); i++; cant++; } for(i=0; i<cant; i++) { cout<<numero[i]<<" "; } fe.close(); }

Leer archivos
Uso de ATOI

También podría gustarte