Tarea 2 de Almacenamiento y Recuperación de la Información

Trimestre 2008 Primavera
Entrega: 21 de julio de 2008 a las 22:00.

El propósito de esta tarea es el de practicar la inserción y borrado en archivos con registros de longitud fija. Se considerarán dos archivos llamados datos y operaciones.

El archivo datos contendrá una serie de registros de longitud fija con un número fijo de campos de longitud fija. En particular, cada registro del archivo datos contendrá un campo borrado, un campo siguiente, un campo nombre y un campo apellido en ese orden. El campo de borrado usará un caracter '+' o '-' (presente y borrado, respectivamente), el campo de siguiente usará un máximo de cuatro caracteres numéricos (número de registro relativo), el campo de nombre usará un máximo de doce caracteres alfabéticos, el campo de apellido usará un máximo de catorce caracteres alfabéticos y al final del registro aparecerá un caracter de avance de línea '\n'. Los caracteres que no formen parte de los campos deberán ser puntos '.'. El registro 0 del archivo inicial será considerado un registro de cabecera y no podrá ser borrado. Su campo siguiente indicará el lugar en el que se encuentra el primer registro borrado o contendrá el valor 0 para indicar que no hay registros borrados. En los demás registros el campo siguiente indicará el lugar en el que se encuentra el siguiente registro borrado o contendrá el valor 0 para indicar que ya no hay más registros borrados.

El archivo operaciones contendrá una serie de registros de longitud fija que describen posibles operaciones de inserción o borrado. En particular, cada registro del archivo operaciones contendrá un campo de operación y los campo nombre y apellido, en ese orden. El campo de operación usará un caracter 'I' o 'B' y los otros dos campos serán de la misma forma que están descritos para el archivo datos. El registro termina con un caracter de avance de línea '\n'. El significado de cada una de las operaciones será el siguiente:
El archivo operaciones termina cuando se encuentra el fin de archivo.

Escribe un programa de nombre operacNN que lleve a cabo esta tarea, donde NN son los dos dí­gitos de la clave que te fue proporcionada por el profesor. Página de prueba.

Ejemplo de archivo datos (al iniciar)
Ejemplo de archivo operaciones
Ejemplo de archivo datos (al terminar)
+...4..........................
+....Felix.......Cardenas......
+....Mirna.......Servin........
-...0Joel........Ortega........
-...3Alonso......Urrutia.......
+....Leonardo....Valdes........
+....Ingrid......Betancourt....
BIngrid......Betancourt....
IFelix.......Cardenas......
IMirna.......Servin........
IFelix.......Cardenas......
IFelix.......Cardenas......
BMirna.......Servin........
BFelix.......Cardenas......

+...7..........................
-...4Felix.......Cardenas......
-...0Mirna.......Servin........
-...1Felix.......Cardenas......
-...2Mirna.......Servin........
+....Leonardo....Valdes........
-...3Felix.......Cardenas......
-...6Felix.......Cardenas......

Nota: Observa que esta tarea te puede dar problemas en Windows, puesto que en este sistema operativo '\n' se representa con dos caracteres. También observa que los archivos de datos y de operaciones no tienen una longitud máxima especificada, por lo que no debes leerlos completamente en memoria. Finalmente, observa que los nombres de los archivos no tienen extensión.