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

Trimestre 2013 Primavera
Entrega: 2 de julio de 2013 a las 22:00.

El propósito de esta tarea es el de practicar los conceptos de índices primarios y secundarios vistos en clase.

Considere un archivo isbn.txt con registros de longitud variable, cada uno de ellos con tres campos de longitud variable. Los registros están separados por avances de línea y los campos están separados por barras verticales. Los campos constarán de uno o más caracteres. Estos campos corresponderán con el nombre de un libro, su autor y su ISBN.

Escribe un programa librosNN que lea este archivo y que genere un índice primario por ISBN y un índice secundario por autores.

El índice primario deberá quedar almacenado en el archivo primario.txt y deberá consistir de registros de longitud fija separados por avances de línea. Cada registro tendrá un campo alfanumérico y un campo numérico de longitud fija: el ISBN en diez caracteres (eliminando los guiones) y la posición de inicio del registro en seis dígitos hexadecimales. Recuerde que este índice deberá quedar ordenado por el campo de ISBN.

El índice secundario deberá quedar almacenado en el archivo secundario.txt y deberá consistir de registros de longitud fija separados por avances de línea. Cada registro tendrá dos campos de longitud fija: el primero constará de seis caracteres o espacios y el segundo será el número de ISBN en diez caracteres. El campo alfabético contendrá como máximo los primeras seis caracteres del campo de autor en mayúsculas. En caso de que el autor mida menos de seis caracteres entonces se llenará con espacios en blanco. Recuerde que este índice deberá quedar ordenado por su primer campo y en caso de empate por su segundo campo.

Ejemplo

isbn.txt
primario.txt
secundario.txt
File Structures|Folk|0-201-87401-6
Algorithms in C++|Sedgewick|968-444-401-X
Extremal Graph Theory|Bollobas|0-486-43596-2
Topological Graph Theory|Gross|0-486-41741-7
Algebraic Graph Theory|Biggs|0-521-45897-8
Graph Theory|Diestel|0-387-98976-5
Algebraic Graph Theory|Godsil|0-387-95220-9
Graphs on Surfaces|Mohar|0-8018-6689-8
0201874016     0
0387952209    F5
0387989765    D2
0486417417    7A
0486435962    4D
0521458978    A7
0801866898   121
968444401X    23
BIGGS 0521458978
BOLLOB0486435962
DIESTE0387989765
FOLK  0201874016
GODSIL0387952209
GROSS 0486417417
MOHAR 0801866898
SEDGEW968444401X