Indice De Ficheros En C
Organizacion de Archivos
Realizado: 13/04/2011 */
#include
#include
#include
#include
#include
struct stRegistro {
char valido; //indica si el registro esvalido S->Válido, N->Inválido
char nombre[34];
char apellido[2][34];
char telefono[10];
};
struct stIndice {
char telefono[10];
long indice;
};
int Menu();
voidCapturar(stRegistro ®);
void EliminarRetornoLinea(char *cad);
void Leer(FILE *fa, stRegistro ®, char *telefono);
void Insertar(FILE *fa, stRegistro ®);
void Mostrar(stRegistro ®);
voidListarPorTelefonos(FILE *fa);
void ListarNatural(FILE *fa);
void ReconstruirIndices(FILE *fa);
// Funciones para ordenar el fichero de índices:
void Intercambia(FILE *fa, long iz, long de);
char*LeeCampo(FILE *fa, long n, char *buf);
void QuickSort(FILE *fa, long inicio, long final);
int main()
{
stRegistro reg;
FILE *fa;
int opcion;
char telefono[10];
fa =fopen("indices.dat", "r+b");// Este modo permite leer y escribir
if(!fa) fa = fopen("indices.dat", "w+b");// si el fichero no existe, lo crea.
do {
opcion = Menu();
switch(opcion) {case '1': // Insertar registro
Capturar(reg);
Insertar(fa, reg);
break;
case '2': // Buscar registro
system("cls");printf("Buscar registro: ");
do {
fgets(telefono, 10, stdin);
EliminarRetornoLinea(telefono);
} while(strlen(telefono) < 1);
Leer(fa, reg,telefono);
Mostrar(reg);
break;
case '3': // Indicar archivo
system("cls");
printf("Indicando archivo: ");ReconstruirIndices(fa);
break;
case '4': // Mostrar todo por orden de teléfonos
ListarPorTelefonos(fa);
break;
case '5': // Mostrar todo por orden natural...
Regístrate para leer el documento completo.