viernes, 27 de enero de 2017
Acceso a los Archivos
Se refiere al método utilizado para acceder a los registros
de un archivo prescindiendo de su organización. 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 dirección 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 dirección relativa de cada registro, y posterior acceso directo al registro.
- Dinámico: es cuando se accede a los archivos en cualquier de los modos anteriormente citados.
La elección del método esta directamente relacionada con la
estructura de los registros del archivo y del soporte utilizado.
Tipos de Accesos
- Acceso Secuencial: Exige el tratamiento de elemento, para esto es necesario una exploración secuencial comenzando desde el primer momento (Pascal permite este acceso)
- Secuenciales: archivo de texto que debe ser leído del principio hasta el final.
- Acceso Directo. Permite procesar o acceder a un elemento determinado y referencia directamente por su posición 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 bite por bite 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 técnicas 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 características, a las técnicas 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
localización de archivo en el que se trabajará, incluyendo usualmente el drive
y path.
"C:\Windows\AddrBook.ini"
{Append| Binary| Input| Outuput| Random} El programador tiene que seleccionar
uno. 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 número al archivo. El número
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
WRITE: envia data del
programa al archivo secuencial. La
estructura es:
WRITE #filenumber,
[OutputList]
Por ejemplo:
WRITE #1,
UserName, UserCompany, SerialNumber
WRITE es la operación 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
Declaración y asignación de archivos
La declaración de un archivo con tipo se efectúa con la
ayuda de las palabras reservadas file of.
El procedimiento de asignación es idéntico al utilizado
anteriormente.
Ejemplo:
Type
datos = record
clave : integer;
nombre : string[30];
puesto : string[20];
sueldo : real;
estado : boolean;
{true activo,false baja lógica}
end;
Var
archivo:file
of datos;
begin
Assign(archivo,'empleado.dat');
Organización de Archivos
Los archivos se encuentran organizados lógicamente como una
secuencia de registros de varias longitudes diferentes.
- Los archivos de registros de longitud fija: son los que almacenan la información 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 más 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.
Enfoques Generales
- Enfoque de acceso secuencial: Se refiere al procesamiento de los archivos de acuerdo con el orden especifico. Ejemplo archivo secuenciales y de texto.
- Enfoque de acceso Directo Permite recuperar registros individuales sin leer otros registros del archivo, ejemplos archivos indizados.
Archivos Secuenciales
Se refiere al procesamiento de los registros, no importa el
orden en que se haga, para eso los registros están organizados en forma de una
lista y recuperarlos y procesarlos uno por uno de principio a fin. 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 secuancial puede ver los registros
en un orden secuancial simple. La única forma de recuperar registros es comenzar al
principio y extraerlos en el orden contemplado.
La manipulación de los archivos
se hace en el contexto de la programación en un lenguaje por procedimientos de
alto nivel. Estos lenguajes tienden a expresar la manipulación de archivos
mediante subrutinas que se definen como parte del lenguaje formal o se incluyen
como extensiones del lenguaje en una biblioteca estándar.
La mayor parte de los lenguajes por procedimiento de alto
nivel cuenta con características que ayudan a detectar la marca de fin de
archivo.
Archivos de Texto
También conocidos como (Stream File) son utilizados para almacenar
documentos que consisten en texto; En ellos, cada registro es un solo símbolo o
código de control. El leer estos archivos recibimos la información en orden
secuencial en el que aparece cuando lo vemos en un monitor. Los archivos de texto son una secuencia de líneas separadas
por marcas de fin de línea. El usuario escribe los
archivos de textos mediante un procesador de palabras que le permitirá
almacenar la información pero no estrictamente en forma secuencial. El procesador también nos permite desplazarnos por todo el
bloque de información y permitirnos realizar modificaciones. Mientras el usuario avance rápidamente en la lectura de
registro lograra ver mas archivos. Casi todos los entornos de
programación por procedimientos de alto nivel cuentan con subrutinas para
manipular los archivos de texto.
Archivos Indizados
Es la aplicación de incluir índices en el almacenamiento de
los archivos; de esta forma nos será más fácil buscar algún 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 posición de
registro correspondiente en el almacenamiento masivo.
Fundamento de los Índices
- La colocación de un listado al inicio del archivo: para la identificación del contenido.
- La presentación de un segundo índice: para reflejar la información de cada punto principal del índice anterior.
- La actualización de los índices: Cuando se insertan y eliminan archivos, es preciso actualizar los índices para evitar contratiempos actualizando un archivo.
- La organización de un índice: Nos evita examinar archivo por archivo para recuperar algún registro buscado; por lo tanto ahorraríamos tiempo si tenemos una adecuado organización de los índices.
Archivos Dispersos
También llamados (Hashed Files) representan un sistema de
almacenamiento de archivos que solo ofrece acceso directo, y permiten calcular
la posición de un registro en el almacenamiento masivo. El usuario debe dividir el área de almacenamiento asignando
al archivo en varias secciones llamadas cubetas para poder ingresar los datos. La distribución de la información en las cubetas es
problemática debido a que la estructura de los archivos es dispersa. Dentro de los archivos se presentan colisiones de
información debido al agrupamiento de los registros ingresados. Casi ninguno de los lenguajes de programación por
procedimientos en la actualidad ofrece implantaciones directas de archivos
dispersos; esto es debido a las cuestiones dependientes de la aplicación
implicadas en el diseño de estos archivos.
Suscribirse a:
Entradas (Atom)
