[Indice]      [1]      [2]      [3]      [4]      [5]      [6]      [7]      [8]      [9]      [10]

REGISTROS Y ARCHIVOS



Registros

Un registro es una estructura heterogénea de datos, denominados campos y a los que accedemos por nombre. Al igual que cualquier otro dato, el tipo registro (Record) antes de poder se utilizado debe ser declarado en la sección de tipos.

La única operación (a parte de la lectura) que se puede realizar con una variable registro como tal es la asignación, es decir, se pueden copiar todos los campos de una variable registro a otra variable registro del mismo tipo. Además un registro puede ser pasado como parámetro a una función o procedimiento.


Archivos

Un archivo es una estructura homogénea de datos consistente en una secuencia de elementos llamados registros, todos del mismo tipo, ya sea simple o estructurado. Un archivo se almacena en un dispositivo auxiliar (discos, cintas, etc), de forma que los datos obtenidos antes, durante y después del procesamiento de los datos, no se pierden. Para declarar una variable archivo es necesario definir previamente la naturaleza de sus registros.


Ejemplo:

  Type
    	Tiporegistro = record
               		Campo 1 :tipol;

			  .
			  .

               		Campo N : tipoN;
         End;

         Tipoarchivo = file of tiporegistro.
  Var

    Archivol : tipoarchivo;
    Registro1 : tiporegistro;

Operaciones básicas con archivos:


Instrucción

Operación

   ASSIGN

Este procedimiento asigna un archivo lógico con su archivo fisico correspondiente. Después de la asignación, cualquier operación sobre la variable archivo afectará al archivo Dos correspondiente.

Assign (Vararch,nomarch);

   RESET

Procedimiento que abre un archivo para lectura posicionando el puntero de lectura del archivo en el primer elemento del archivo, y poniendo la variable booleana EOF asociada al archivo a False, o en la marca de fin de archivo sí el archivo esta vacio, en cuyo caso la variable EOF toma el valor True. No se puede modificar el contenido de ningún registro.

RESET (nomvararchivo);

   IORESULT

Función que devuelve el número del tipo de error cometido en el tratamiento de archivos. Si no hay ningún error devuelve O.

   REWRITE

El procedimiento Rewrite abre un archivo para escritura destruyendo el contenido del arhivo si este ya existe. No es posible ver datos de un archivo que está abierto con este procedimiento, ya que borra los datos existentes.

   READ

Este procedimiento se utiliza para introducir el contenido de un registro del archivo en una variable de memoria definida del mismo tipo de dato que el registro leido.

READ (nomvararchivo,nomvarreg);

   EOF

En la lectura del último registro el salto del puntero posiciona éste sobre la marca de fin de archivo, colocando la función lógica EOF "fin de archivo" asociada a cada archivo a verdadero.

EOF (vararchivo)


Ejemplo:

    While not eof(pruebas) do
    	Begin
        	Read (pruebas,info);
        	Write (info);    
    	End;

   WRITE

El procedimiento write escribe en un registro del archivo el contenido de una variable de memoria definida del mismo tipo.

WRITE (nomvararchivo,nomvarreg);



Archivos de acceso directo

Están formados por registros del mismo formato y longitud por lo que permiten el acceso a un registro especifico mediante un número asociado al mismo, que se denomina su número de registro lógico. El número asociado es de tipo longint y se asigna al primer registro lógico el valor O. Para que un archivo pueda ser tratado por posicionamiento o acceso directo debe residir obligatoriamente en un dispositivo de almacenamiento de este tipo.

La declaración de un archivo de acceso directo es idéntica a la de otros archivos y sólo se distingue de ellos por las funciones de posicionamiento en un registro. El contenido de un archivo directo se almacena en disco bajo forma binaria comprimida y no es visualizable directamente en pantalla, como los archivos de texto, con la orden TYPE de DOS o con editores.

Las principales operaciones de archivos de acceso directo que se usan en Pascal son:

RESET Abrir archivo existente.

REWRITE Abrir un archivo nuevo.
Son dos procedimientos para abrir el archivo de acceso directo, ya sea con un procedimiento u otro, el archivo se abrirá para lectura y escritura.

FILESIZE Tamaño del archivo en formato longint, indica el número de registros almacenados. Si el fichero está vacio devuelve el valor O.

SEEK Permite seleccionar un registro específico del archivo por su número de registro, para su uso en una operación de lectura o escritura.

READ Lectura del registro actual.

WRITE Escritura sobre el registro actual.

CLOSE Cerrar el archivo.


Tratamiento de archivos desde Turbo Pascal

El Turbo Pascal permite manipular archivos y directorios en disco de modo similar al sistema operativo Ms-DOS. Pudiendose realizar las siguientes operaciones con archivos y directorios:

  Erase(nomvararchivo)
  Rename(nomvararchivo,'nombrenuevoarchivo')
  Chdir (directorio)
  Mkdir (directorio)
  Rmdir (directorio)
  Getdir(unidad,camino)

    Unidad = 0 unidad de arranque
    Unidad = 1 A:
    Unidad = 2 B:
    Unidad = 3 C:

    Camino contiene el directorio actual.

Getdir obtiene la unidad y el camino del directorio actual de una unidad y lo almacena en las variables unidad, de tipo byte y cambio de tipo String.



LaPolitecnica.Net © 2000-2002, Raúl Zambrano Maestre