Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
/* *ejemplo6_31 *agenda.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "agenda.h" #define TAMANHO_MAX 100 /*tamaño máximo de la agenda*/ static Contacto agenda[TAMANHO_MAX]; int inicializarAgenda (const char *nombreFichero) { FILE *fichero; register int posicion=0; int leidos; if ((fichero=fopen(nombreFichero,"rb")) != NULL) { while (fread (&agenda[posicion], sizeof(Contacto),1,fichero) && posicion<TAMANHO_MAX) posicion++; fclose(fichero); } else { return ERROR; } leidos = posicion; for (; posicion<TAMANHO_MAX; posicion++) { /*inicializar el resto de componentes del array*/ agenda[posicion].nombre[0]='\0'; } return leidos; } int buscarContactoEnAgenda (char nombre[]) { register int posicion; for (posicion=0; posicion<TAMANHO_MAX; posicion++) if (strcmp(agenda[posicion].nombre,nombre)==0) { return posicion; } return ERROR; } int recorrerAgenda (int ultimoProcesado) { register int posicion; for (posicion=ultimoProcesado; posicion<TAMANHO_MAX; posicion++) { if (agenda[posicion].nombre[0]) { return posicion; } } return ERROR; } int salvarAgenda (const char *nombreFichero) { FILE *fichero; register int posicion=0; if ((fichero=fopen(nombreFichero,"wb")) == NULL) { return ERROR; } else { for (posicion=0; posicion<TAMANHO_MAX; posicion++) { if (agenda[posicion].nombre[0]) { if ((fwrite (&agenda[posicion], sizeof(Contacto),1,fichero)) != 1) { return ERROR; } } } fflush(fichero); fclose(fichero); } return posicion; } int introducirContactoEnAgenda(Contacto nuevoContacto) { int hueco; for (hueco=0; hueco<TAMANHO_MAX; hueco++) { if (agenda[hueco].nombre[0]=='\0') break; } if (hueco==TAMANHO_MAX) return ERROR; agenda[hueco] = nuevoContacto; return hueco; } void borrarContactoEnAgenda(int posicion) { agenda[posicion].nombre[0]='\0'; } Contacto recuperarContactoDeAgenda(int posicion) { return agenda[posicion]; } void modificarContactoEnAgenda(int posicion, Contacto contacto) { agenda[posicion] = contacto; }
Compartir