3. Hasta aquí hemos manipulado datos (información) contenidos en
variables cuyos tipos son simples o estructurados. Estos tipos de
variables se almacenan en memoria RAM, y esa información se
almacena mientras el algoritmo que las utilice se esté ejecutando.
Es evidente que se necesita tener información perpetua para
todos los procesos que se realicen por medio de una
computadora, por lo que surge la necesidad de un “almacén”
para contenerlos. Esto se logra por medio de un archivo, el que
se guardará en algún soporte no volátil: disco, cinta, zip, diskette,
pen_drive y otros. En cualquiera de estos, la información queda
preservada aunque el programa finalice.
El archivo es la estructura de datos también conocida como
estructura de almacenamiento, y se asocia a un dispositivo de
memoria auxiliar permanente donde se archiva la información.
Algorítmica y Programación I
4. Definiciones:
Un archivo es una colección de registros semejantes, guardados
en dispositivos de almacenamiento secundario de la
computadora.
Un archivo es una estructura de datos que guarda una colección
de elementos del mismo tipo en un dispositivo de
almacenamiento secundario de una computadora.
Podemos observar que un archivo es una estructura de datos homogénea. Se
caracteriza por:
• crecimiento ( se incorporan nuevos elementos )
• modificaciones que se efectúan sobre él (se pueden alterar datos o quitar).
Algorítmica y Programación I
5. Administración de archivos
En un disco rígido se
puede almacenar un gran
número de archivos
(físicos)
Un programa procesa
archivos (lógicos)
Programa XXX independientemente del
lugar físico en el que está
almacenado
Sistema encargado de los
detalles de
S.O.
almacenamiento.
Algorítmica y Programación I
6. El programa referencia
indirectamente al archivo
físico, utilizando para ello
un nombre lógico, que se
denomina archivo lógico
Algorítmica y Programación I
7. Antes de que el programa pueda operar sobre
un archivo, el SO debe recibir instrucciones
para hacer un enlace entre el nombre lógico
que utilizará el algoritmo y el archivo físico.
Cada lenguaje tiene su propia instrucción (o
conjunto de instrucciones) para ese fin.
Algorítmica y Programación I
9. ABRIR ( archivo ): Esta operación debe ser usada previamente a cualquier otra,
para preparar la utilización de archivo.
Para Lectura: Esta operación se utiliza cuando el archivo ya está creado y se
desea acceder a la información que se encuentra en él.
Para Escritura: Esta operación se utiliza cuando el archivo no existe y se
necesita crearlo para grabar información en él.
Es necesario aclarar el tipo de apertura del archivo.
Ejemplo
Abrir (Facultad ) -- Para lectura {se abre un archivo existente}
Abrir (Facultad) -- Para escritura { se abre un archivo que no
existe}
La apertura de un archivo establece una posición corriente en el mismo, la cual
indica el dato que va a ser leído, o el lugar sobre el que va a ser escrito. Todos los
lenguajes la utilizan para operar con los archivos, aunque cada uno lo maneja de
manera diferente.
Algorítmica y Programación I
10. CERRAR ( archivo ): Se utiliza esta operación una vez que se ha terminado de
procesar la información de un archivo. Éste ha sido abierto para lectura o para
escritura.
Ejemplo
Cerrar (Facultad) -- se cierra el archivo que se abrió previamente
Cualquier acceso que se pretenda realizar sobre un archivo cerrado será no
válido
Al cerrarse un archivo, se graba una marca en éste que señala el fin de
archivo
Algorítmica y Programación I
11. LEER( archivo, dato ): Se utiliza para leer dato desde el archivo. Dato está en
la posición actual (o corriente) de archivo. Esta lectura colocará el contenido
de dato del archivo en una variable del mismo tipo. Si se trata de un registro,
lee un registro desde el archivo, y lo almacena en una variable del mismo tipo
registro.
Es importante aclarar que con cada realización de la operación Leer, el
indicador de posición actual se irá modificando hasta avanzar hacia el fin-de-
archivo.
Ejemplo
Leer(Facultad, Profesor) -- coloca en la variable Profesor
-- información de un registro del archivo Facultad
Algorítmica y Programación I
12. GRABAR( archivo, dato ): Se utiliza para agregar un registro en el archivo,
colocando la información de la variable registro en un registro del archivo.
Aclaramos que con cada operación Grabar que se realiza, se irá actualizando
la marca de fin-de-archivo.
Ejemplo
Grabar (Facultad, Profesor) -- agrega información de la variable
-- profesor en el archivo Facultad
Algorítmica y Programación I
13. Una función para procesar archivos
FIN ( archivo ): Esta operación (función) se utiliza para detectar el fin del
archivo. En caso de que sea falso, podemos continuar leyendo información
desde el archivo. Si es verdadero, indica que se llegó al final.
Algorítmica y Programación I
14. Los soportes y el acceso
Soportes que permiten acceso directo
Soportes que permiten sólo acceso secuencial
Algorítmica y Programación I
15. Técnicas de organización y acceso a un archivo
Según la manera en que se
organizan los registros
podemos tener:
• acceso secuencial
• acceso directo
Algorítmica y Programación I
16. Técnicas de organización y acceso a un archivo
De acuerdo a su organización, un
archivo puede ser:
• Secuencial
• Directo
• Secuencial indexado
Algorítmica y Programación I
17. El acceso secuencial permite acceder a los registros o elementos uno tras
otro, en el orden físico en que están guardados.
El acceso directo permite acceder a un registro determinado, sin
necesidad de haber accedido a sus predecedores.
La organización define la manera en que los registros se distribuyen
sobre el almacenamiento secundario:
• en la Organización Secuencial, los registros se graban en forma
consecutiva, y se recuperan en el mismo orden.
• en la Organización Directa, los registros se recuperan desde su posición
k-ésima, la que debe conocerse previamente
• la Organización Secuencial Indexada utiliza estructuras de datos
auxiliares para permitir un acceso seudo-directo.
Algorítmica y Programación I
18. Procesamiento de un archivo
Podemos manipular un archivo en el soporte magnético en el que está
almacenado, como para buscar información, imprimirla, corroborarla, etc.
Algorítmica y Programación I
19. Procesamiento de un archivo
Para procesar un archivo es suficiente con acceder a éste y
recuperar la información. Cada lenguaje de programación tiene
sus instrucciones de apertura, acceso, lectura, grabación y
cierre.
Nosotros veremos que para manipular la información de un
archivo a fin de ordenarla o realizar una búsqueda binaria, es
conveniente bajar el archivo a un vector, y una vez allí, se
puede:
• ordenar el vector mediante cualquiera de los métodos que
hemos visto.
• realizar sobre esa estructura todas las operaciones necesarias.
• almacenar esa información en un soporte.
Algorítmica y Programación I
20. La estructura de Datos
El tipo estructurado que emplearemos es el arreglo unidimensional (un vector),
donde cada elemento de éste será un registro que contendrá la información de cada
registro lógico del archivo que estemos procesando.
Tipos
T_Reg_Persona = Registro
Nombre : cadena (20)
Edad : entero
Estado_Civil : cadena (25)
Salario :flotante
FinRegistro
T_Archi_Persona = archivo de T_Reg_Persona --información en dispositivo de
-- almacenamiento secundario
T_Vec_Persona = arreglo (100) de T_Reg_Persona -- información en memoria
-- de acceso directo
Variables
Profesor : T_Reg_Persona
Facultad : T_Archi_Persona -- permite mantener información del
-- personal de la Facultad
InfoFacultad : T_Vec_Persona
Algorítmica y Programación I
21. Bajar un archivo: la información de un archivo -existente en almacenamiento
secundario (disco, cinta, etc.)- se almacena en una variable del tipo estructurado.
Procedimiento BajarArchivo( Facu : ArchivoPersona;InfoFacu :T_Vec_Persona;
CantPersonas : entero )
Variables
Regi : T_Reg_Persona
I : entero
Comienza
I 0 -- inicialmente suponemos que no existe información en el archivo
Abrir (Facu) -- Para lectura
Mientras no Fin(Facu) Hacer
Comienza
I I+1
Leer (Facu, Regi)
InfoFacu (I) Regi -- coloco en la posición I-esima del vector la
-- información del registro leído
Termina
CantPersonas I -- tenemos i-elementos en el vector de registros
Cerrar (Facu)
Termina
Algorítmica y Programación I
22. Subir un archivo: se graba la información desde memoria central sobre un archivo
que se encuentra en almacenamiento secundario.
Procedimiento SubirArchivo( Facu : ArchivoPersona, InfoFacu : T_Vec_Persona,
CantPersonas : entero )
Variables
Regi : T_Reg_Persona
I : entero
Comienza
Abrir (Facu) --Para escritura
Para I 1 hasta CantPersonas Hacer -- coloco los i-elementos del vector en
-- el archivo
comienza
Regi ← InfoFacu (I )
Grabar (Facu, Regi ) -- grabo el i-esimo elemento del vector en el archivo.
-- Esta operación también modifica la marca fin-de-archivo
termina
Cerrar ( Facu )
Termina
Algorítmica y Programación I
23. … seguiremos en la próxima con más aspectos de los archivos…..