¿Como funcionan los archivos?


Antes de explicar como leer y escribir informacion en un archivo, quiero explicar exactamente cual es su manera de operar.

En la primera parte denominada Que son y como se dividen hice enfasis en un enunciado Un archivo, es una secuencia lineal de componentes, hay algo mas a lo que se pueda aplicar esta definicion?.

Pues si, los arreglos son tambien una secuencia lineal de componentes, solo que los arreglos mantienen los datos mientras el programa esta corriendo, cuando el programa termina, los datos del arreglo se pierden, entonces podemos decir que los archivo son como arreglos cuyos datos se guardan permanentemente en un medio fisico, y ademas son "dinamicos" pues van creciendo conforme se necesita mas espacio.

La comparacion de un archivo con un arreglo no es tan descabellada, pues al igual que con los arreglos, podemos acceder a cualquier registro (casilla cuando se habla de arreglos), haciendo referencia solo a su posicion dentro del archivo.

Solo que cuando trabajemos con archivos no necesitamos implementar una variable que nos sirva de indice, cuando trabajamos con arreglos por lo general hacemos lo siguientes

var
     arreglo:array[1..10] of integer;
     i:integer;

begin
     write('Que dato desea ver: );
     radln(i);
     write(arreglo[i]);
end.

Este programa es muy abstracto, pero en fin, decimos que i funciona como indice porque con el valor de i podemos acceder a algun dato en particular.

Los archivos tienen un índice creado por el Sistema Operativo al mismo tiempo que se crea el archivo, el cual indica cuál es la posición actual dentro del archivo, este índice lo podemos manipular desde Pascal de tal forma que podamos acceder a los registros que nos interesen. Ademas se le llama apuntador o puntero del archivo.

Ahora bien, tenemos que tener en cuenta que:

Entonces, para guardar informacion en un archivo tenemos que hacerlo en la ultima posicion, que es la que esta vacia, esta es una regla, La ultima posicion del archivo es un registro vacio donde se guardan los nuevos registros, cuando se guarda un nuevo registro, escribimos en el archvivo, como estamos escribiendo en la ultima posicion, el puntero se mueve una posicion hacia adelante, entonces como era la ultima posicion se crea una nueva posicion vacia. Ademas hay que tener en cuenta que esa ultima posicion no cuenta para el tamaño del archivo. Veamos las siguientes graficas.

Creamos un nuevo archivo.

Entonces lo que tenemos es un registro en blanco, listo para usarse, el tamaño del archivo en este momento es 0, 0 registros


Escribimos un nuevo registro en el archivo, en la posicion 0


Se escribe el valor de dato en la posicion del puntero, es decir en el registro 0 que estaba en blanco, la regla dice que cada que vez que leemos o escribimos en el archivo el puntro se mueve una posicion hacia adelante, como el puntero estaba en la ultima posicion, entonces se crea un nuevo registro en blanco, mas sin embargo el tamaño del archivo es de 1, 1 registro

Como ven, siempre, en todo momento hay un registro vacio, que es el que le sigue al ultimo registro guardado.


Regresar


inicio
Si llegaste a esta pagina desde un buscador
haz click aqui para ir a la pagina principal
Hosted by www.Geocities.ws

1