You are on page 1of 14

ARCHIVOS

ARCHIVOS
Las grandes cantidades de datos se
almacenan normalmente en un dispositivo de
memoria secundaria. Estas colecciones de
datos se conocen como archivos.
Un archivo es un conjunto de bits
almacenado en un dispositivo de memoria
secundaria, el cual puede ser almacenado
con un conjunto de propiedades y
recuperado de la misma manera por el
sistema operativo para que un programa
tenga acceso a este un archivo es
identificado por un nombre y la descripcin
de la carpeta o directorio que lo contiene.

TIPOS DE ARCHIVOS

Existen dos tipos de archivos:


Archivos de texto: Un archivo de texto es una
secuencia de caracteres organizadas en lneas
terminadas por un carcter de nueva lnea. En estos
archivos se pueden almacenar textos. Los archivos
de texto se caracterizan por ser planos, es decir,
todas las letras tienen el mismo formato y no hay
palabras subrayadas, en negrita, o letras de distinto
tamao o ancho.
Archivos binarios: Un archivo binario es una
secuencia de bytes que tienen una correspondencia
uno a uno con un dispositivo externo. Ejemplos de
estos archivos son Fotografas, imgenes, texto con
formatos, aplicaciones etc.

PUNTEROS A ARCHIVOS
Un puntero a archivo es una variable de tipo

puntero al tipo FILE que se define en stdio.h

Un programa necesita utilizar punteros a

archivos para leer o escribir en ellos mismos.


Para obtener una variable de este tipo se hace
de la siguiente forma.
FILE *f;

Apertura de un archivo
La operacin apertura se lleva a cabo mediante la funcin fopen ().

La funcin fopen () retorna una direccin de memoria asociada con el


archivo (un puntero a un archivo). Si este no puediese abrirse o
crearse fopen () retorna la constante NULL que indica que la
direccin de memoria no esta definida. Hay diversas posibilidades de
apertura de un archivo solo escritura, solo lectura, lectura y
escritura, etc.-.
Ejemplo:
FILE *f;
F = fopen(mi_archivo.txt, w);
If (f == NULL)
{
Printf(Error! No pudo crearse el archive!);
Return 1;/*Cuando el programa termina con un valor distinto de
cero estamos indicndole al
Sistema operativo una situacin de anomala*/
}

El argumento w en la llamada a fopen () indica la apertura para solo

escritura del archivo con nombre fsico mi_archivo.txt.


Estos son los posibles valores valores que puede tomar el segundo
parmetro de fopen ().
r
Abre un archivo de texto para lectura
w
Abre un archivo de texto para escritura. Si existe previamente, se crea
uno vacio
a
Abre o crea un archivo para escritura al final de este
r+
Abre un archivo de texto para lectura y escritura
w+
Crea un archivo de texto para lectura y escritura. Si existe previamente,
se crea uno vacio
a+
Abre o crea un archivo de texto para lectura o escritura al final

ab

Abre o crea un archivo binario para escritura al final de


este
rb+
Abre un archivo binario para lectura o escritura
w+
Crea un archivo binario para lectura y escritura. Si existe
previamente, se crea uno vacio
ab+
Abre o crea un archivo binario para lectura y escritura al
final
rb
Abre un archivo binario para lectura
wb
Crea un archivo binario para escritura. Si existe
previamente, se crea uno vacio

Cierre de un archivo
Un archivo debe cerrarse cuando se decide que

ya no ser utilizado. La operacin de cierre es


importante porque libera los recursos asignados al
archivo y sobre todo, porque fuerza la escritura en
el medio externo de datos que podran estar aun
en el buffer. Esta funcin esta implementada por
la funcin fclose ().
Ejemplo:
FILE *f;
. . .
Fclose (f);

Operaciones entre
archivos
Apareo

Se tiene un archivo Maestro y uno o ms archivos


de Novedades. Los archivos estn ordenados
por la misma clave y tienen el mismo formato
de registro, con la salvedad de que el registro
del archivo de Novedades incluye el cdigo de la
operacin a realizar (A: alta, B: baja,
M:modificacin).

Algoritmo

Busco mnimo, si el mnimo es:


Maestro: Grabo en salida registro M, avanzo M.
Novedades A: Grabo en salida registro N, avanzo N.
B: Informo error de borrado, avanzo N.
M: Informo error de modificacin, avanzo
N. Ambos A: Informo error de insercin, avanzo N y
M.
B: Avanzo N y M.
M: Grabo en salida registro N, avanzo N y
M. Cuando se tienen varios archivos de novedades
el registro se actualiza en memoria y recin se
graba en el archivo de salida una vez que cambia la
clave mnima. Hay que tener en cuenta los criterios
para procesar novedades sobre la misma clave.

Interseccin
Se tienen dos o ms archivos con registros de

igual formato, y ordenados por la misma clave, y


se quiere grabar en el archivo de salida
nicamente los registros que figuren en todos
los archivos de entrada.
Algoritmo
Busco Mnimo: Al menos 1 archivo son clave
mnima.
Avanzo los que tienen clave
mnima.
Todos los archivos con clave
mnima.
Grabo el registro en salida y

Union
Se tienen dos o ms archivos con registros de

igual formato, y ordenados por la misma clave,


y se quiere grabar en el archivo de salida
nicamente los registros que figuren en todos
los archivos de entrada.
Algoritmo:
Busco mnimo: En los archivos con clave mnima.
Grabo el registro en salido y los
avanzo.
Cuando todos los archivos llegan al EOF implica
la finalizacin del proceso.

Mezcla
Consiste en obtener un archivo nuevo

(ordenado) a partir de dos o mas archivos


tambin ordenados. El archivo que se obtiene
contendr todos los registros de los archivos
que pretendemos mezclar.
Algoritmo:
Se toma el primer registro de cada uno de los
archivos que estn siendo mezclados.
Comparando los campos por los cuales los
archivos se encuentran ordenados, si el registro
considerado menor esta en:
Archivo 1: Se graba este registro en Mezcla, y se
avanza una

Archivo 2: Se graba este registro en Mezcla, y se


avanza una
posicin.
Archivo 1 y Archivo 2: Se graban ambos registros
en el
archivo Mezcla y se
avanzan ambos
archivos de entrada.
Cuando alguno de los archivos Archivo 1 o Archivo
2, se haya procesado por completo entonces se
copia el resto del archivo que aun contenga
registros en Mezcla que tiene ordenados todos
los registros de Archivo 1 y Archivo 2, ordenados
en forma ascendente.

You might also like