Está en la página 1de 3

#include <stdio.

h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <ctype.h>

char * const ARCHIVO_BIN = "directo.dwt";

struct cuerpo{
char linea[1000];
};

struct persona{
char nombre [50];
char apellido [50];
char dpi[14];
char domicilio [100];
char telefono_movil[11];
char telefono_recidencial [11];
char correo_electronico [100];
};

void cargarInformacionDeArchivo();
void verAgenda();
void crearPersona (persona, FILE*);
void verInfoEstructura( persona persona )
{
cout<<"Nombre: "<<persona.nombre;
cout<<"\nApellido: "<<persona.apellido;
cout<<"\nDpi: "<<persona.dpi;
cout<<"\nDomicilio: "<<persona.domicilio;
cout<<"\nATelefono movil: "<<persona.telefono_movil;
cout<<"\nATelefono recidencial: "<<persona.telefono_recidencial;
cout<<"\nCorreo: "<<persona.correo_electronico;
cout<<"\n------\n";
}

void coincidencias( int flag, int total = 0){
if( flag == 0 )
cout<<"No existen coincidencias"<<endl;
else
cout<<"Se encontraron "<<total<< " coincidencias"<<endl;
}

void main(){
char resp;

for(;;){
clrscr();
cout<<"-...Cargar agenda"<<endl;
cout<<"A...Agregar contacto"<<endl;
cout<<"B...Ver toda la agenda"<<endl;
cout<<"C...Buscar por primera letra del apellido"<<endl;
cout<<"D...Buscar por posicion dentro del archivo"<<endl;
cout<<"E...Borrar contenido del archivo"<<endl;
cout<<"X...SALIR"<<endl;
resp = getch();

switch( resp ){
case '-': cargarInformacionDeArchivo(); break;
case 'A': case 'a' : verAgenda(); break;
case 'X': case'x': exit(0);break;
default: cout<<"OPCION INCORRECTA!";getch();
};
}
}
void verAgenda(){
FILE *archdisco;
archdisco = fopen("persona.bin","rb");
persona persona;
int flag = 0, contador = 0;

clrscr();
while( fread( &persona,sizeof(persona),1,archdisco) == 1 ){
verInfoEstructura( persona );
flag = 1;
contador++;
}

fclose(archdisco);

coincidencias( flag, contador );
getch();
}

void cargarInformacionDeArchivo(){
/* declaracion de variables */
FILE *entrada;
//FILE *guardar_persona;

int contador = 0;
char path[ 1000 ];

cuerpo cuerpo[ 15 ];
/* fin declaracion de variables */

clrscr();

cout<<"Ingrese el path del archivo: ";
cin>>path;

//strcpy( path, "entrada.txt" );

if( ( entrada = fopen( path, "r" ) ) == NULL ){
cout <<"Error en la apertura del archivo: "<<path;
getch();
return;
}

while( fgets( cuerpo[ contador ].linea ,100, entrada ) != NULL ){
if( cuerpo[ contador ].linea[ strlen( cuerpo[ contador ].linea ) - 1 ] == '\n' )
cuerpo[ contador ].linea[ strlen( cuerpo[ contador ].linea ) - 1 ] = '\0';
contador++;



}

fclose(entrada);

FILE *guardar_persona;
guardar_persona = fopen("persona.bin","ab+");
fwrite(&cuerpo,sizeof(persona),1,guardar_persona);
fclose(guardar_persona);
//Aviso al usuario que se ha guardado la estructura
cout << "\nCliente Guardado Satisfactoriamente" << endl;
getch();
//return 0;
}

También podría gustarte