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');

No hay comentarios:

Publicar un comentario