Programación IArchivos Archivos Secuenciales. Programación IArchivos Archivos – Agenda ¿Qué es un Archivo? Abrir Archivo Leer Archivo Grabar Archivo Cerrar.

1 Programación IArchivos Archivos Secuenciales ...
Author: Salvador Castellanos Silva
0 downloads 0 Views

1 Programación IArchivos Archivos Secuenciales

2 Programación IArchivos Archivos – Agenda ¿Qué es un Archivo? Abrir Archivo Leer Archivo Grabar Archivo Cerrar Archivo Precauciones

3 Programación IArchivos ¿Qué es un Archivo? Para facilitar el desarrollo del tema haremos una analogía que esperamos ayude a la compresión. Un archivo se podría pensar como una película, una secuencia de imágenes que son leídas por nuestro reproductor una a una para formar una secuencia continua. Las películas están compuestas por fotogramas mientras que los archivos están compuestos por registros.

4 Programación IArchivos ¿Qué es un Archivo? Los registros son las estructuras de datos mínimas que se encuentran dentro de un archivo. Un archivo es una colección de n registros y la estructura de los mismos depende del archivo que estemos leyendo. Así como una película tiene género (drama, suspenso, acción, etc.) y uno espera cierto tipo de trama, cada archivo tiene su estructura de datos que se repetirá a lo largo del mismo. Archivo Secuencial Registros

5 Programación IArchivos ¿Qué es un Archivo? Antes de seguir avanzando ahondaremos un poco sobre los diferentes tipos de archivos. Son tres los diferentes tipos de archivos con los que trabajaremos a lo largo de la carrera: Secuenciales, Indexados y Bases de Datos. Por el momento nos ocuparemos solamente de los secuenciales. Este tipo de archivo es el más simple y el que mejor se adaptará a nuestra simpática analogía. Un archivo secuencial está compuesto por una serie de registros consecutivos los cuales siempre serán leídos del primero en adelante. Siempre que queramos ver nuestra película tendremos que verla desde el principio. No podremos empezar a verla por la mitad. Sí podemos detenerla antes de finalizar.

6 Programación IArchivos Abrir Archivo Se denomina Abrir Archivo al proceso que nos permite establecer una conexión con el archivo que se encuentra en disco. Análogamente podemos pensarlo de igual manera que sucede cuando elegimos una película y la insertamos en un reproductor de video. De no llevar a cabo este primer paso jamás podremos acceder a la información que se encuentra en el archivo. Como tampoco podemos mirar una película si no la insertamos en el reproductor de antemano. Disco Rígido Memoria RAM Variable FILE * Esquema de la conexión lógica a un archivo ubicado en disco generada luego de la apertura del mismo. Notar que el archivo sigue estando ubicado físicamente en el disco.

7 Programación IArchivos Abrir Archivo A la hora de abrir un archivo debemos tener en cuenta cuál va a ser su finalidad. Si nosotros deseamos ver una película colocamos la misma en el reproductor, de esta manera leemos la información que contiene. Pero si queremos hacer una película deberíamos grabarla. De manera similar, si nuestra finalidad es leer un archivo secuencial lo debemos abrir en modo lectura -o Entrada-, en cambio si deseamos grabar registros en el mismo lo debemos abrir en modo escritura -o Salida-. Archivo en Disco Programa Entrada a procesamiento Salida a disco LecturaEscritura

8 Programación IArchivos Abrir Archivo El Diagrama Nassi Schneiderman la llamada al procedimiento sería: Y su encabezado: void AbrirArchPerE (str30 sUbic, FILE * &fArchPers) Nota: El encabezado y la llamada son los mismo tanto para archivos de Entrada -lectura- o Salida - escritura-. Sólo variará la última letra del procedimiento, 'E' o 'S' respectivamente.

9 Programación IArchivos Leer Archivo Así como nuestro reproductor va avanzando obteniendo una a una las imágenes y las va mostrando por pantalla haciéndolas parecer una secuencia continua, el proceso de lectura nos permite ir trayendo uno a uno los registros del archivo secuencial. Debido a que previamente ya establecimos la conexión con el archivo en modo lectura -archivo de Entrada- ahora nos es posible leer la información almacenada en el mismo. Veamos mediante la siguiente animación un esquema del proceso de lectura …

10 Programación IArchivos Leer Archivo Proceso de Lectura de un Archivo de Personas Animar Memoria RAM rPersona En este momento rPersona contiene: "31343568", "Barredo", "Rodrigo" en sus campos. En este momento rPersona contiene: "13146568", "Gomez", "Leandro" en sus campos. Mientras haya registros, o mientras bFin no valga VERDADERO, continúo leyendo el archivo. En este momento rPersona contiene: “16458798", “Perez", “Germán" en sus campos. En este momento rPersona contiene: “26654987", “Acevedo", “Fabricio" en sus campos. Al no haber más registros el booleano bFin cambia a VERDADERO -y por consecuente la condición a FALSO- y el ciclo de lectura termina. 31343568 Barredo Rodrigo13146568 Gomez Leandro16458798 Perez Germán26654987 Acevedo Fabricio Pantalla 31343568 Barredo Rodrigo 13146568 Gomez Leandro 16458798 Perez Germán 26654987 Acevedo Fabricio Muestro por pantalla los datos contenido en el registro rPersona. El Archivo no contiene más registros. Se alcanza el fin de archi-vo, bFin ahora vale VERDADERO. Continúe clickeando el botón para ir avanzando la animación. La animación a finalizado.

11 Programación IArchivos Leer Archivo El Diagrama Nassi Schneiderman la llamada sería: Su encabezado: void LeerAPers (FILE * &fArchPers, ty_rPersona &rPersona, boolean &bFin)

12 Programación IArchivos Grabar Archivo Previamente, antes de poder grabar en un archivo -como se lo estarán imaginando- hay que abrir el mismo en modo escritura -archivo de Salida-. Este proceso se asemeja a la filmación de una película. El camarógrafo va tomando capturas (imágenes) que van siendo almacenadas en una cinta una detrás de la otra. En la grabación de un archivo secuencial los registros son agregados uno detrás de otro y siempre que grabamos lo hacemos en la última posición.

13 Programación IArchivos Grabar Archivo El proceso de grabación de un archivo se asemeja a realizar una película desde el principio. Siempre que abramos el archivo estaremos comenzando a grabar desde el primer registro. Debemos tener especial cuidado ya que perderemos toda la información que previamente existía en nuestro archivo secuencial. La información que vayamos grabando será posicionada al final del archivo. El Diagrama Nassi-Schneiderman la llamada sería: Y su encabezado: void GrabarAPers (FILE *& fArchPers, ty_rPersona rPersona)

14 Programación IArchivos Cerrar Archivo Así como cada vez que terminamos de ver una película retiramos la misma del reproductor y la guardamos en su estuche, cuando terminamos de usar un archivo –sin importar el modo de apertura- debemos cerrarlo. Es de suma importancia no olvidarse de cerrar el archivo para que toda la información enviada al mismo quede debidamente grabada. El procedimiento de cierre de un archivo es la más simple de todos: El Diagrama Nassi-Schneiderman su llamada sería: Y su encabezado: void CerrarArch(FILE * &fArchPers)

15 Programación IArchivos Precauciones Jamás olvidarse de: Abrir Archivo – Leer o Grabar Archivo – Cerrar Archivo A la hora de grabar un archivo, asegúrense que el registro no contenga campos con “basura”. Recordar que siempre la grabación de un archivo secuencial se realiza en la última posición. Los encabezados que necesitamos en Programación 1 son los mismos que definimos en C++ para los procedimientos. Saludos y hasta pronto! Grábense las siguientes recomendaciones