You are on page 1of 21

INTRODUCCIN

En este presente trabajo se tocar el tema de Archivos aplicado en el lenguaje C++,


que son tambin denominados ficheros (file); es una coleccin de informacin (datos
relacionados entre s), localizada o almacenada como una unidad en alguna parte de
la computadora.
Los archivos como coleccin de datos sirven para la entrada y salida a la
computadora y son manejados con programas.
Los archivos pueden ser contrastados con Arrays y registros; Lo que resulta
dinmico y por esto en un registro se deben especificar los campos, l nmero de
elementos de un arrays (o arreglo), el nmero de caracteres en una cadena; por esto
se denotan como "Estructuras Estticas".
En los archivos no se requiere de un tamao predeterminado; esto significa que se
pueden hacer archivos de datos ms grandes o pequeos, segn se necesiten.
Cada archivo es referenciado por su identificador (su nombre).

CAPTULO I: MARCO TERICO


1.1 DEFINICIN DE ARCHIVOS
Los archivos tambin denominados ficheros (file); es una coleccin de informacin
(datos relacionados entre s), localizada o almacenada como una unidad en alguna
parte de la computadora.
Los archivos son el conjunto organizado de informaciones del mismo tipo, que
pueden utilizarse en un mismo tratamiento; como soporte material de estas
informaciones.

1.2 CARACTERSTICAS DE LOS ARCHIVOS


Las principales caractersticas de esta estructura son:
-

Independencia de las informaciones respecto de los programas


La informacin almacenada es permanente
Un archivo puede ser accedido por distintos programas en distintos

momentos
Gran capacidad de almacenamiento.

1.3. CLASIFICACION DE LOS ARCHIVOS


Los archivos se clasifican segn su uso en tres grupos:
Permanentes o Maestros:
-

Estos contienen informacin que vara poco. En algunos casos es preciso


actualizarlos peridicamente.

De Movimientos:
-

Se cercan para actualizar los archivos maestros. Sus registros son de tres
tipos: alta, bajas y modificaciones.

De Maniobra o Trabajo:
-

Tienen una vida limitada, normalmente menor que la duracin de la ejecucin


de un programa. Su utilizan como auxiliares de los anteriores archivos
mencionados.

1.4 TIPOS DE ARCHIVOS


Los elementos de un archivo pueden ser de cualquier tipo, simples o estructurados o
segn su funcin.
1.4.1 SEGN SU FUNCION.
Se define por:
a. Archivos Permanentes:
Son aquellos cuyos registros sufren pocas o ninguna variacin a lo largo del
tiempo, se dividen en:
Constantes: Estn formados por registros que contienen campos fijos y campos
de baja frecuencia de variacin en el tiempo.
De Situacin: Son los que en cada momento contienen informacin actualizada.
Histricos: Contienen informacin acumulada a lo largo del tiempo de archivos
que han sufridos procesos de actualizacin o bien acumulan datos de variacin
peridica en el tiempo.
b. Archivos de Movimiento
Son aquellos que se utilizan conjuntamente con los maestros (constantes), y
contienen algn campo comn en sus registros con aquellos, para el
procesamiento de las modificaciones experimentado por los mismos archivos
mencionados lneas atrs.
c. Archivo de Maniobra o Transitorio
Son los archivos creados auxiliares creados durante la ejecucin del programa
y borrados habitualmente al terminar el mismo.

1.4.2 SEGN SUS ELEMENTOS.


Los principales archivos de este tipo son:
-

Archivo de Entrada: Una coleccin de datos localizados en un dispositivo de

entrada.
Archivo de Salida: Una coleccin de informacin visualizada por la

computadora.
Constantes: estn formados por registros que contienen campos fijos y

campos de baja frecuencia de variacin en el tiempo.


De Situacin: son los que en cada momento contienen informacin

actualizada.
Histricos: Contienen informacin acumulada a lo largo del tiempo de
archivos que han sufrido procesos de actualizacin, o bien acumulan datos de

variacin peridica en el tiempo.


Archivos de Movimiento o Transacciones: Son aquellos que se utilizan
conjuntamente con los maestros (constantes), y contienen algn campo
comn en sus registros con aquellos, para el procesamiento de las

modificaciones experimentado por los mismos.


Archivos de Maniobra o Transitorios: Son los archivos auxiliares creados
durante la ejecucin del programa y borrados habitualmente al terminar el

mismo.
Archivo de Programa, un programa codificado en un lenguaje especfico y

localizado o almacenado en un dispositivo de almacenamiento.


Archivo de Texto, una coleccin de caracteres almacenados como una unidad
en un dispositivo de almacenamiento.

CAPTULO II: ACCESO A LOS ARCHIVOS


2. ACCESO A LOS ARCHIVOS
Se refiere al mtodo utilizado para acceder a los registros de un archivo
prescindiendo de su organizacin. Existen distintas formas de acceder a los datos:
-

Secuenciales; los registros se leen desde el principio hasta el final del archivo,

de tal forma que para leer un registro se leen todos los que preceden.
Directo; cada registro puede leerse / escribirse de forma directa solo con
expresar su direccin en el fichero por l numero relativo del registro o por
transformaciones de la clave de registro en l numero relativo del registro a

acceder.
Por ndice; se accede indirectamente a los registros por su clave, mediante
consulta secuenciales a una tabla que contiene la clave y la direccin relativa

de cada registro, y posterior acceso directo al registro.


Dinmico; es cuando se accede a los archivos en cualquier de los modos
anteriormente citados.

La eleccin del mtodo est directamente relacionada con la estructura de los


registros del archivo y del soporte utilizado.
2.1 TIPOS DE ACCESOS
-

Acceso Secuencial: Exige el tratamiento de elemento, para esto es necesario


una exploracin secuencial comenzando desde el primer momento (Pascal

permite este acceso)


Secuenciales: Archivo de texto que debe ser ledo del principio hasta el final.
Acceso Directo. Permite procesar o acceder a un elemento determinado y
referencia directamente por su posicin en el soporte de almacenamiento

(Turbo Pascal permite este acceso).


Aleatorios: Es un archivo con registros de un mismo largo. Un programa
puede accesar directamente cualquier registro sin tener que leer los registros

previos.
Binarios: Es un archivo que lee byte por byte sin asumir ninguna estructura.

Los archivos Binarios no son un nuevo tipo de archivo, pero si una nueva forma de
manipular cualquier tipo de archivo. Las tcnicas de archivo binarios permiten leer o

cambiar cualquier byte de un archivo. Son herramientas extremadamente potentes,


pero como toda herramienta potente debe manejarse con cuidado
Entre otras caractersticas, a las tcnicas de archivo binario no les preocupa los
caracteres EOF intercalados (Control+Z = Chr$(26)) que pueda tener un archivo.
Ejemplo Open NombreArchivo for Binary as #NumeroArchivo.
Instrucciones para manejar archivos
OPEN: Reserva un espacio del buffer para la data que mover entre el
programa y los archivos. La estructura es:
OPEN filespec FOR {Append|Binary|Input|Outuput|Random} As #filenumber
Por ejemplo:
OPEN "C:\Windows\AddrBook.ini" FOR Input As #1
Filespec: Es la localizacin de archivo en el que se trabajar, incluyendo
usualmente el drive y path.
"C:\Windows\AddrBook.ini"
{Append| Binary| Input| Outuput| Random}
seleccionar uno.

El programador tiene que

Binary y Random se utiliza para archivos binarios y

aleatorios. Append, Input y Output son usados con archivos secuenciales.


Un archivo secuencial no puede ser abierto para leer y escribir
simultaneamente.

Output es usado para escribir en el archivo.

Input es

usado para leer del archivo. Append es usado para colocar data al final de un
archivo exitente.
#filenumber: es necesario asignar un nmero al archivo. El nmero puede
estar en el rango de #1 a #511 y es usado por Visual Basic para identificar el
archivo.
CLOSE: Para cerrar un archivo. La estructura es:
CLOSE #filenumber
Por ejemplo:

CLOSE #1
CLOSE #filenumber
WRITE: Enva data del programa al archivo secuencial. La estructura es:
WRITE #filenumber, [OutputList]
Por ejemplo:
WRITE #1, UserName, UserCompany, SerialNumber
WRITE #filenumber, [OutputList]
WRITE es la operacin opuesta al INPUT. Las expresiones en el OutputList
son separadas por comas. WRITE inserta comillas y comas a la data que
envia al archivo.
INPUT: Lee data del archivo. La estructura es:
INPUT #filenumber, InputList
Por ejemplo:
INPUT #1, UserName, UserCompany, SerialNumber

Declaracin y asignacin de archivos


La declaracin de un archivo con tipo se efecta con la ayuda de las palabras
reservadas file of. El procedimiento de asignacin es idntico al utilizado
anteriormente.
Ejemplo:
Type
datos = record
clave : integer;
nombre : string[30];

puesto : string[20];
sueldo : real;
estado : boolean;
{true activo,false baja lgica}
end;
Var
archivo:file of datos;
begin
Assign(archivo,'empleado.dat');
}
2.2 SISTEMA DE MANEJO DE ARCHIVOS.
Tiene las siguientes funciones:
Controla los datos en almacenamiento secundario [ ]
Proporciona al usuario una abstraccin de cmo se manipulan los datos
internamente. [ ]
Proporciona independencia de E/S con los dispositivos [ ]
Soporte de comparticin, proteccin, recuperacin de archivos y posibles cadas del
sistema. [ ]
Transmisin de datos de memoria principal a secundaria.[ ]
Los archivos de una empresa pueden almacenarse en diferentes dispositivos. Todos
los archivos se pueden almacenar por medio de directorios, que no son otra cosa
ms que tablas de smbolos de archivo, los directorios se pueden utilizar de dos
formas:
2.2.1 DIRECTORIO DE NIVEL NICO O DIRECTORIO PLANO

Con este mtodo, se almacenan todos los archivos en un solo nivel, este
mtodo en sistemas donde el volumen de archivos no es grande.[ ]
DIRECTORIO JERARQUICO
-

Los archivos son almacenados por medio de directorios, esta


clasificacin se de acuerdo a la conveniencia del usuario o de la
empresa. [ ] .La estructura tiene una forma de rbol con raz, este
mtodo es el ms utilizado debido a que la revisin o bsqueda se

realiza de forma sencilla.


Para accesar a los archivos que se almacenan en un sistema jerrquico,
el usuario debe indicar el o los directorios que se deben recorrer para
localizar el archivo deseado, a esto se le denomina ruta de acceso del
archivo. La ruta de acceso puede ser de dos formas:

Ruta absoluta: Este tipo de ruta de acceso inicia siempre con una diagonal
invertida [ ]
C:\Edit c:\SOS\sistemas\report.txt
Ruta relativa.- Este tipo de ruta de acceso realiza la bsqueda del archivo en
el directorio de trabajo actual, si el archivo no se localiza aqu, el S.O. lo
buscar en los directorios especificados en el PATH de un archivo con
extensin .BAT.
C:\Edit report.txt
2.3 OPERACIONES GENERALES QUE SE REALIZAN SOBRE UN ARCHIVO.
Las operaciones generales que se realizan son:
-

Creacin. Escritura de todos sus registros.


Consulta. Lectura de todos sus registros.
Actualizacin. Insercin supresin o modificacin de algunos de sus

registros
Clasificacin. Reubicacin de los registros de tal forma que queden

ordenados segn determinados criterios.


Borrado. Eliminando total del archivo, dejando libre el espacio del soporte
que ocupaba.

CAPTULO III: ORGANIZACIN DE LOS ARCHIVOS


3.1 ORGANIZACIN DE LOS ARCHIVOS.
Los archivos se encuentran organizados lgicamente como una secuencia de
registros de varias longitudes diferentes.

Los archivos de registros de longitud fija: son los que almacenan la informacin en
los archivos mediante un encabezado y luego se introducen uno a uno los registros
ubicados en posiciones consecutivas.
Los registros de longitud variable: es el almacenamiento de registros de varios tipos
en un archivo y permite uno o ms campos de longitudes variables y dichos campos
pueden ser repetidos. La longitud de los registros debe estar definida correctamente
para poder leer y escribir de forma efectiva.
3.1.1 ENFOQUES GENERALES PARA LA ORGANIZACIN DE ARCHIVOS.
Los enfoques son:
1. - Enfoque de acceso secuencial: Se refiere al procesamiento de los archivos
de acuerdo con el orden especifico. Ejemplo archivo secuenciales y de texto.
2. - Enfoque de acceso Directo Permite recuperar registros individuales sin leer
otros registros del archivo, ejemplos archivos indizados.
3.1.2 ARCHIVOS SECUENCIALES.
Se refiere al procesamiento de los registros, no importa el orden en que se haga,
para eso los registros estn organizados en forma de una lista y recuperarlos y
procesarlos uno por uno de principio a fin.
Rudimentos de los archivos Secuenciales; dependiendo del dispositivo de
almacenamiento utilizado el archivo se puede mostrar el usuario como si fuera un
sistema secuencial.
Al finalizar un archivo secuencial se denota con una marca de fin de archivo. (End
end-of-file)
El usuario de un archivo secuencial puede ver los registros en un orden
secuencial simple.
La nica forma de recuperar registros es comenzar al principio y extraerlos en el
orden contemplado.
Cuestiones de programacin; la manipulacin de los archivos se hace en el
contexto de la programacin en un lenguaje por procedimientos de alto nivel.

Estos lenguajes tienden a expresar la manipulacin de archivos mediante


subrutinas que se definen como parte del lenguaje formal o se incluyen como
extensiones del lenguaje en una biblioteca estndar.
La mayor parte de los lenguajes por procedimiento de alto nivel cuenta con
caractersticas que ayudan a detectar la marca de fin de archivo.
3.1.3 ARCHIVOS DE TEXTO.
Tambin conocidos como (Slream File) son utilizados para almacenar documentos
que consisten en texto; En ellos, cada registro es un solo smbolo o cdigo de
control.
El leer estos archivos recibimos la informacin en orden secuencial en el que
aparece cuando lo vemos en un monitor.
Los archivos de texto son una secuencia de lneas separadas por marcas de fin
de lnea.
Rudimentos de los archivos de textos; El usuario escribe los archivos de textos
mediante un procesador de palabras que le permitir almacenar la informacin
pero no estrictamente en forma secuencial.
El procesador tambin nos permite desplazarnos por todo el bloque de
informacin y permitirnos realizar modificaciones.
Mientras el usuario avance rpidamente en la lectura de registro lograra ver mas
archivos.
Cuestiones de programacin; Casi todos los entornos de programacin por
procedimientos de alto nivel cuentan con subrutinas para manipular los archivos
de texto.
Estas subrutinas pueden formar parte de la definicin formal del lenguaje o que se
ofrezca en biblioteca como extensiones del mismo.
3.1.4 ARCHIVOS INDIZADOS.

Es la aplicacin de incluir ndices en el almacenamiento de los archivos; de esta


forma nos ser ms fcil buscar algn registro sin necesidad de ver todo el
archivo.
Un ndice en un archivo consiste en un listado de los valores del campo clave que
ocurren en el archivo, junto con la posicin de registro correspondiente en el
almacenamiento masivo.
Fundamento de los ndices
a.- La colocacin de un listado al inicio del archivo: para la identificacin del
contenido.
b.- La presentacin de un segundo ndice: para reflejar la informacin de cada
punto principal del ndice anterior.
c.- La actualizacin de los ndices: Cuando se insertan y eliminan archivos, es
preciso actualizar los ndices para evitar contratiempos actualizando un archivo.
d.- La organizacin de un ndice: Nos evita examinar archivo por archivo para
recuperar algn registro buscado; por lo tanto ahorraramos tiempo si tenemos
una adecuado organizacin de los ndices.
Cuestiones de Programacin
Algunos lenguajes de alto nivel cuentan con subttulos para manipular los archivos
de un registro indizado.
Valindose de las subrutinas es posible escribir programas sin tener que
preocuparse por la estructura real del sistema de ndices que se aplique.
3.1.5 ARCHIVOS DISPERSOS.
Tambin llamados (Hashed Files) representan un sistema de almacenamiento de
archivos que solo ofrece acceso directo, y permiten calcular la posicin de un
registro en el almacenamiento masivo.
Rudimentos de los archivos dispersos.

El usuario debe dividir el rea de almacenamiento asignando al archivo en varias


secciones llamadas cubetas para poder ingresar los datos.
La distribucin de la informacin en las cubetas es problemtica debido a que la
estructura de los archivos es dispersa.
Dentro de los archivos se presentan colisiones de informacin debido al
agrupamiento de los registros ingresados.
Cuestiones de programacin.
Casi ninguno de los lenguajes de programacin por procedimientos en la
actualidad ofrece implantaciones directas de archivos dispersos; esto es debido a
las cuestiones dependientes de la aplicacin implicadas en el diseo de estos
archivos.

CAPTULO IV: UTILIZACIN DE ARCHIVOS

4.1 MEDIDAS DE UTILIZACIN DE LOS ARCHIVOS.


Para utilizar un archivo debemos tener en cuenta:
1. - ndice de Volatilidad; Un archivo es voltil cuando tiene un alto porcentaje de
adiciones y supresiones debido al ingreso o eliminacin de registros respecto al
nmero promedio de registros que haya en el archivo.
2. - ndice de Actividad; Un archivo es activo cuando tiene un alto porcentaje de
utilidad sea de actualizacin o consulta en un periodo de tiempo fijo respecto al
nmero promedio de registro que se encuentran en el archivo.
El ndice de actividad suele emplearse para saber si un archivo puede explotarse
como una organizacin secuencial o relativa.
Archivos de acceso directo (con tipo)
Los archivos tipeados (con tipo), tambin llamados archivos binarios, contienen
datos de tipo simple o estructurado, tales como integer, real , record, etc., excepto
otro tipo de archivos.
Los archivos con tipos estn estructurados en elementos o registros (record) cuyo
tipo puede ser cualquiera. A los elementos de estos archivos se accede
directamente, al no situarse stos en posiciones fsicamente consecutivas, sino en
posiciones lgicas. Esta es la razn por la cual se les denomina archivos de acceso
aleatorio o directo. Los elementos de los archivos aleatorios son de igual tamao y el
trmino acceso directo significa que es posible acceder directamente a un elemento
con solo especificar su posicin
4.2 DEFINICIONES.
Los ms utilizados en el desarrollo del tema son:
Archivo (Fichero):
Conjunto de informacin estructurada en unidades de acceso denominada registro.
Registros.

Estructura de datos formada por uno o ms elementos denominados "Campos" y


estos pueden estar compuestos a su vez por "subcampos".
Claves:
Se denomina a un campo especial del registro que sirve para identificarlo
Bloque:
Es la cantidad de informacin que se transfiere en cada operacin de lectura o
escritura sobre un archivo.
Campo:
Es cada uno de los diferentes datos que constituyen un registro lgico.

4.3 EJEMPLOS
Prob 1: El siguiente programa escribe tres lneas en un fichero llamado
EJEMPLO5.TXT que se crea en el programa (si ya existe borramos su contenido).
Cada lnea consta de un entero, un real y una cadena de caracteres. Los datos en
cada lnea estn separados por espacios en blanco.
#include <fstream.h> // Biblioteca para el manejo de ficheros
#include <iostream.h> // Bibliooteca para la entrada-salida estndar
int main(){
ofstream fichout ("EJEMPLO5.TXT",ios::out);
if (!fichout)
cout << "\n Incapaz de crear este o abrir el fichero \n";
else {
fichout << 1 << " " << 5.0 << " APROBADO" << endl;
fichout << 2 << " " << 1.1 << " SUSPENSO" << endl;

fichout << 3 << " " << 8.0 << " NOTABLE " << endl;
fichout.close();
}
} // Fin del main

Prob 2: El siguiente programa lee el fichero de texto llamado EJEMPLO5.TXT y


visualiza su contenido en el monitor.
#include <fstream.h> // Libreria para el manejo de ficheros
#include <iostream.h>
typedef char TCadena[30];
int main(){
int i;
char c;
float r;
TCadena cad;
ifstream fichin("EJEMPLO5.TXT"); // declaracion y apertura del fichero
if (!fichin)
cout << "\n Incapaz de crear este o abrir el fichero ";
else{
fichin >> i; // Observese la lectura adelantada!!!
while (!fichin.eof()){
cout << i << " ";
fichin >> r;

cout << r << " ";


fichin >> cad;
cout << cad << "\n";
fichin >> i;
}
fichin.close();
} // Fin del main

Prob 3: El siguiente programa escribe un texto (byte a byte) en el fichero


Ejemplo8.dat.
#include <fstream.h>
#include <iostream.h>
int main(){
char cad[17]="TEXTO A ESCRIBIR";
ofstream fichout("Ejemplo8.dat", ios::out | ios::binary);
if (!fichout)
cout << "\n Incapaz de Crear o Abrir el fichero ";
else{
for (int i=0;i<=16;i++)
fichout.put(cad[i]); // Escritura en el fichero
fichout.close();
}
} // Fin del main

Prob 4: El siguiente programa declara el fichero F.dat para entrada-salida, graba en


dicho fichero el valor 1234.86 en binario y despus los veinte primeros enteros.
Posteriormente, lee el fichero visualizando su informacin en la salida estndar (el
monitor).
#include <fstream.h>
#include <iostream.h>
int main(){
float R=1234.86;
int i,N;
fstream fichbin("F.dat",ios::binary | ios::out); // Apertura como salida
fichbin.write(&R,sizeof(float));
for (i=1;i<=20;i++)
fichbin.write(&i,sizeof(int));
fichbin.close();
fichbin.open("F.dat",ios::binary | ios::in); // Apertura como entrada
fichbin.read(&R,sizeof(float));
cout <<endl << "R= " << R << endl;
for (i=1;i<=20;i++){
fichbin.read(&N,sizeof(float));
cout <<endl << i << "= " << N << endl;
}
} // Fin del main

Prob 5: El siguiente programa almacena en un fichero los 10 primeros enteros, luego


muestra por pantalla el quinto entero (o sea el 5), posteriormente lo reemplaza por el
valor 100, y al final visualiza en el monitor el contenido del fichero.
#include <fstream.h>
#include <iostream.h>
int main(){
int i,N;
fstream fichbin("ejemplo11.dat",ios::binary | ios::in | ios::out);
for (i=1;i<=10;i++)
fichbin.write(&i,sizeof(int)); // Almacena los 10 primeros enteros
fichbin.seekp(4*sizeof(int)); // se posiciona al principio del quinto/ entero
fichbin.read(&N,sizeof(float)); // Lee dicho entero
cout <<endl << "Quinto= " << N << endl; // visualiza el valor 5
fichbin.seekp(4*sizeof(int)); // se posiciona de nuevo en el quinto entero
// pues el cursor haba avanzado.
i=100;
fichbin.write(&i,sizeof(int)); // Modifica el valor 5 por el valor 100;
fichbin.seekp(0*sizeof(int)); // se posiciona de nuevo al principio del fichero
for (i=1;i<=10;i++){
fichbin.read(&N,sizeof(float));
cout <<endl << i << "= " << N << endl; // Se visualiza el contenido
}
fichbin.close();
} // Fin del main

BIBLIOGRAFIA
1.- Estructura de Datos en Pascal, Autor Aarn M. Tenenbaum, Moshe J. Augentein.
Primera edicin.
2.- Diseo y Administracin de Base de Datos Gary W. Hansen, James V. Hansen,
Segunda Edicin.
3.- Gua de Estructura y Procesamiento de Datos Profesor David Lpez, Segundo
semestre U.N.I.R. (Maracaibo).
4.- http://www2.ing.puc.cl/iic1102/materia/cap10.htm
5.- http://www.uady.mx/sitios/matemati/enlinea/admin_arch/materiales/material1.html
6.- http://coqui.lce.org/cadiaz/CEDU5120V/Contenido/ArchExt.htm
7- http://www.itlp.edu.mx/publica/tutoriales/pascal/u8_8_8.html

You might also like