//BIBLIOTECAS EMPLEADAS //Bibliotecas #include #include #include #include #include #include #include #include #include #define color1 7 #define color2 127 //VARIABLES GLOBALES struct datos{ char apellidos[21]; char nombre[16]; char direccion[21]; char localidad[21]; char provincia[11]; char cod_postal[6]; char edad[3]; char tfno[10]; char dni[10]; char instrumento[11]; }datos; typedef struct nodo{ char apellidos[21]; char nombre[16]; char direccion[21]; char localidad[21]; char provincia[11]; char cod_postal[6]; char edad[3]; char tfno[10]; char dni[10]; char instrumento[11]; struct nodo *sig; }PERSONAS; struct simbolo{ char letra; }simbolo; typedef struct nodo1{ char letra; struct nodo1 *sig; struct nodo1 *ant; }LET; int matriz1=0; int opcion=1; PERSONAS *plista=NULL; char matriz2[80]; //DECLARACION DE FUNCIONES void graba(); void diario(int subopcion); void captura(int tam,int elec,char nombre[80],int x,int y); void MUSICOS(int subopcion); void recupera(); void introducir(); void borrar(); void contenido(); void busca(); void visualizadag(void); void visualizaag(char nombre[8]); LET * introduceag(char nombre[8]); void hora(void); void creditos(void); void dibujaeleccion(); void dibujasubmenu1(); void recuadro(int x,int y,int x1,int y1,int o); void marco(int x,int y,int x1,int y1); void ayudas(); void menu(void); //FUNCION PRINCIPAL void main() { int a=0; recupera(); clrscr(); textbackground(0); _setcursortype(_NOCURSOR); menu(); while(opcion!=6||a!=7181) { dibujaeleccion(); while(!kbhit()) { hora(); } a=bioskey(0); if(a==7181&&opcion!=6) dibujasubmenu1(); if(a==19712) opcion++; if(a==19200) opcion--; if(opcion==0) opcion=6; if(opcion==7) opcion=1; } graba(); //system("copy indiceag.dat indiceag.seg"); //system("copy agenda.dat agenda.seg"); //system("copy tel.dat tel.seg"); _setcursortype(_NORMALCURSOR); textbackground(0); clrscr(); } //DIBUJA EL INTERFAZ GENERAL void menu() { clrscr(); textattr(color1); recuadro(2,2,79,24,1); recuadro(2,1,79,1,0); recuadro(2,25,79,25,0); } //DIBUJA ELECCION void dibujaeleccion() { //textattr(LIGHTGRAY); textattr(color2); gotoxy(5,1); cprintf("Actuaciones Musicos Organismos Archivos Informacion Salir"); gotoxy(3,25); cprintf("Copyrights() o derechos de copia()"); textattr(color1); switch(opcion) { case 1:gotoxy(5,1);cprintf("Actuaciones");break; case 2:gotoxy(20,1);cprintf("Musicos");break; case 3:gotoxy(31,1);cprintf("Organismos");break; case 4:gotoxy(45,1);cprintf("Archivos");break; case 5:gotoxy(57,1);cprintf("Informacion");break; case 6:gotoxy(72,1);cprintf("Salir");break; } } //DIBUJA SUBMENUS void dibujasubmenu1() { //subopcion son CURSOS,subopcion1 son CLASES DE CURSOS //subopcion son eleccion de submenus int a=0,subopcion1=1,subopcion2=1,subopcion3=1; int subopcion4=1,subopcion41=1,subopcion42=1,subopcion5=1; while(a!=7181&&a!=283) { switch(opcion) { case 1: //ACTUACIONES recuadro(5,2,20,7,2); marco(5,2,19,7); while(a!=7181&&a!=283&&a!=19712&&a!=19200) { textattr(color2); gotoxy(7,3);cprintf("Toros"); gotoxy(7,4);cprintf("Procesiones"); gotoxy(7,5);cprintf("Conciertos"); gotoxy(7,6);cprintf("Varios"); textattr(color1); switch(subopcion1) { case 1: gotoxy(7,3);cprintf("Toros");break; case 2: gotoxy(7,4);cprintf("Procesiones");break; case 3: gotoxy(7,5);cprintf("Conciertos");break; case 4: gotoxy(7,6);cprintf("Varios");break; } while(!kbhit()) { hora(); } a=bioskey(0); if(a==20480) subopcion1++; if(a==18432) subopcion1--; if(subopcion1==0) subopcion1=4; if(subopcion1==5) subopcion1=1; } if(a!=283&&a!=19712&&a!=19200) diario(subopcion1); textattr(color1);recuadro(5,2,21,8,1); break; case 2: //MUSICOS recuadro(20,2,33,7,2); marco(20,2,33,7); while(a!=7181&&a!=283&&a!=19712&&a!=19200) { textattr(color2); gotoxy(22,3);cprintf("Introducir"); gotoxy(22,4);cprintf("Ver lista"); gotoxy(22,5);cprintf("Borrar"); gotoxy(22,6);cprintf("Buscar"); textattr(color1); switch(subopcion2) { case 1: gotoxy(22,3);cprintf("Introducir");break; case 2: gotoxy(22,4);cprintf("Ver lista");break; case 3: gotoxy(22,5);cprintf("Borrar");break; case 4: gotoxy(22,6);cprintf("Buscar");break; } while(!kbhit()) { hora(); } a=bioskey(0); if(a==20480) subopcion2++; if(a==18432) subopcion2--; if(subopcion2==0) subopcion2=4; if(subopcion2==5) subopcion2=1; } if(a!=283&&a!=19712&&a!=19200) { MUSICOS(subopcion2); } textattr(color1);recuadro(20,2,34,8,1); break; case 3: //ORGANISMOS recuadro(31,2,45,8,2); marco(31,2,45,8); while(a!=7181&&a!=283&&a!=19712&&a!=19200) { textattr(color2); gotoxy(33,3);cprintf("Oficiales"); gotoxy(33,4);cprintf("Hermandades"); gotoxy(33,5);cprintf("Toros"); gotoxy(33,6);cprintf("Entidades"); gotoxy(33,7);cprintf("Varios"); textattr(color1); switch(subopcion3) { case 1: gotoxy(33,3);cprintf("Oficiales");break; case 2: gotoxy(33,4);cprintf("Hermandades");break; case 3: gotoxy(33,5);cprintf("Toros");break; case 4: gotoxy(33,6);cprintf("Entidades");break; case 5: gotoxy(33,7);cprintf("Varios");break; } while(!kbhit()) { hora(); } a=bioskey(0); if(a==20480) subopcion3++; if(a==18432) subopcion3--; if(subopcion3==0) subopcion3=5; if(subopcion3==6) subopcion3=1; } textattr(color1);recuadro(31,2,46,9,1); break; case 4://ARCHIVOS recuadro(45,2,64,7,2); marco(45,2,64,7); while(a!=7181&&a!=283&&a!=19712&&a!=19200) { textattr(color2); gotoxy(47,3);cprintf("Marchas"); gotoxy(47,4);cprintf("Paso dobles"); gotoxy(47,5);cprintf("Obras/Concientos"); gotoxy(47,6);cprintf("Varios"); textattr(color1); switch(subopcion4) { case 1: gotoxy(47,3);cprintf("Marchas");break; case 2: gotoxy(47,4);cprintf("Paso dobles");break; case 3: gotoxy(47,5);cprintf("Obras/Conciertos");break; case 4: gotoxy(47,6);cprintf("Varios");break; } while(!kbhit()) { hora(); } a=bioskey(0); if(a==20480) subopcion4++; if(a==18432) subopcion4--; if(subopcion4==0) subopcion4=4; if(subopcion4==5) subopcion4=1; } if(a!=283&&a!=19712&&a!=19200) { a=0; if (subopcion4==1) { recuadro(65,2,77,5,2); marco(65,2,77,5); while(a!=7181&&a!=283&&a!=19712&&a!=19200) { textattr(color2); gotoxy(66,3);cprintf("Militares"); gotoxy(66,4);cprintf("Procesiones"); textattr(color1); switch(subopcion41) { case 1: gotoxy(66,3);cprintf("Militares");break; case 2: gotoxy(66,4);cprintf("Procesiones");break; } while(!kbhit()) { hora(); } a=bioskey(0); if(a==20480) subopcion41++; if(a==18432) subopcion41--; if(subopcion41==0) subopcion41=2; if(subopcion41==3) subopcion41=1; } textattr(color1);recuadro(65,2,78,6,1); dibujasubmenu1(); } if (subopcion4==2) { recuadro(65,2,76,5,2); marco(65,2,76,5); while(a!=7181&&a!=283&&a!=19712&&a!=19200) { textattr(color2); gotoxy(66,3);cprintf("Toros"); gotoxy(66,4);cprintf("Conciertos"); textattr(color1); switch(subopcion42) { case 1: gotoxy(66,3);cprintf("Toros");break; case 2: gotoxy(66,4);cprintf("Conciertos");break; } while(!kbhit()) { hora(); } a=bioskey(0); if(a==20480) subopcion42++; if(a==18432) subopcion42--; if(subopcion42==0) subopcion42=2; if(subopcion42==3) subopcion42=1; } textattr(color1);recuadro(65,2,78,6,1); dibujasubmenu1(); } } textattr(color1);recuadro(45,2,65,8,1); break; case 5: //INFORMACION recuadro(57,2,68,5,2); marco(57,2,68,5); while(a!=7181&&a!=283&&a!=19712&&a!=19200) { textattr(color2); gotoxy(59,3);cprintf("Ayuda"); gotoxy(59,4);cprintf("Creditos"); textattr(color1); switch(subopcion5) { case 1: gotoxy(59,3);cprintf("Ayuda");break; case 2: gotoxy(59,4);cprintf("Creditos");break; } while(!kbhit()) { hora(); } a=bioskey(0); if(a==20480) subopcion5++; if(a==18432) subopcion5--; if(subopcion5==0) subopcion5=2; if(subopcion5==3) subopcion5=1; } if(subopcion5==1&&a!=283&&a==7181) ayudas(); else if(a!=283&&a==7181/*a!=19712&&a!=19200*/) creditos(); //if(a!=283&&a!=19712&&a!=19200) // { // MUSICOS(subopcion2); // } textattr(color1);recuadro(57,2,69,6,1); break; case 6: //SALIR while(!kbhit()) { hora(); } a=bioskey(0); break; } if(a==19712) {a=0;opcion++;} if(a==19200) {a=0;opcion--;} if(opcion==0) opcion=6; if(opcion==7) opcion=1; dibujaeleccion(); } } //FUNCION PARA CREAR UN RECUADRO EN LAS COORDENADAS INDICADAS void recuadro(int x,int y,int x1,int y1,int o) { int a,b; textattr(color1); for(a=x;a!=x1+1;a++) for(b=y;b!=y1+1;b++) { gotoxy(a,b); if(o==0||o==2) cprintf("Û"); else cprintf("²"); } if(o==2) { textattr(0); for(a=y+1;asig!=NULL) { lista=lista->sig; } lista->sig=(PERSONAS *)malloc(sizeof(PERSONAS)); gotoxy(10,6); cprintf("Apellidos:"); gotoxy(41,6); cprintf("Nombre:"); gotoxy(10,8); cprintf("Direccion:"); gotoxy(10,10); cprintf("Localidad:"); gotoxy(41,10); cprintf("Provincia:"); gotoxy(10,12); cprintf("C.P.:"); gotoxy(36,12); cprintf("Edad:"); gotoxy(51,12); cprintf("Tfno:"); gotoxy(10,14); cprintf("DNI:"); gotoxy(36,14); cprintf("Instrumento:"); captura(20,2,lista->apellidos,20,6); captura(15,2,lista->nombre,48,6); captura(20,2,lista->direccion,20,8); captura(20,2,lista->localidad,20,10); captura(10,2,lista->provincia,51,10); captura(5,2,lista->cod_postal,16,12); captura(2,2,lista->edad,41,12); captura(9,2,lista->tfno,56,12); captura(9,2,lista->dni,14,14); captura(10,2,lista->instrumento,48,14); lista=lista->sig; lista->sig=NULL; textattr(color1); recuadro(9,5,69,20,1); /*gotoxy(27,11); cprintf("Nombre:"); captura(10,1,lista->nombre,34,11); gotoxy(27,12); cprintf("Apodo:"); captura(11,1,lista->apodo,33,12); gotoxy(27,13); cprintf("Numero:"); captura(10,1,lista->numero,34,13);*/ //textattr(color1); //recuadro(25,10,53,15,1); } /*//METE DATOS void introducir() { PERSONAS datos; FILE *fp; if ((fp=fopen("musico.dat","ab"))==NULL) fp=fopen("musico.dat","wb"); recuadro(9,5,68,19,2); marco(9,5,68,19); gotoxy(10,6); cprintf("Apellidos:"); gotoxy(41,6); cprintf("Nombre:"); gotoxy(10,8); cprintf("Direccion:"); gotoxy(10,10); cprintf("Localidad:"); gotoxy(41,10); cprintf("Provincia:"); gotoxy(10,12); cprintf("C.P.:"); gotoxy(36,12); cprintf("Edad:"); gotoxy(51,12); cprintf("Tfno:"); gotoxy(10,14); cprintf("DNI:"); gotoxy(36,14); cprintf("Instrumento:"); captura(20,2,datos.apellidos,20,6); captura(15,2,datos.nombre,48,6); captura(20,2,datos.direccion,20,8); captura(20,2,datos.localidad,20,10); captura(10,2,datos.provincia,51,10); captura(5,2,datos.cod_postal,16,12); captura(2,2,datos.edad,41,12); captura(9,2,datos.tfno,56,12); captura(9,2,datos.dni,14,14); captura(10,2,datos.instrumento,48,14); textattr(LIGHTGRAY); recuadro(9,5,69,20,1); fwrite(&datos,sizeof(datos),1,fp); fclose(fp); }*/ //BORRA DE LA LISTA void borrar() { int encontrado=0; char dni[9],nombre[16],apellidos[21]; PERSONAS *p,*pant; recuadro(18,10,62,14,2); marco(18,10,62,14); gotoxy(21,11); cprintf("Introduce nombre:"); captura(15,0,nombre,38,11); gotoxy(21,12); cprintf("Introduce apellidos:"); captura(20,0,apellidos,41,12); p=plista; pant=0; while(strcmp(nombre,p->nombre)!=0&&strcmp(apellidos,p->apellidos)!=0&&(p!=NULL)) { pant=p; p=p->sig; encontrado=0; } if(strcmp(nombre,p->nombre)==0&&strcmp(apellidos,p->apellidos)==0) { if(pant==0) {plista=p->sig;free(p);} pant->sig=p->sig; free(p); encontrado=1; } if(encontrado==0) {gotoxy(21,13);cprintf("No se encontro");} else {gotoxy(21,13);cprintf("Nombre borrado");} while(!kbhit()) { hora(); } fflush(stdin); textattr(color1); recuadro(18,10,63,15,1); } //r para inicio de carro //MUESTRA EL CONTENIDO void contenido() { int a,c=0,num=1,y=2; PERSONAS *lista; recuadro(2,2,79,24,0); marco(2,2,79,24); lista=plista; while(lista->sig!=NULL) { c++; gotoxy(5,y+1); cprintf("%d.-%s %s DNI:%s",num,lista->nombre,lista->apellidos,lista->dni); gotoxy(8,y+2); cprintf("%s",lista->direccion); gotoxy(8,y+3); cprintf("%5s %20s %10s tfno:%9s\n",lista->cod_postal,lista->localidad,lista->provincia,lista->tfno); y=y+3; if(c==7) { y=2;c=0;gotoxy(37,24);cprintf("[PULSE TECLA]"); while(!kbhit()) { hora(); } while( kbhit() ) getch(); textattr(color1); recuadro(3,3,78,23,0);textattr(color2);} lista=lista->sig; num++; } if(c==0) { marco(23,10,60,14); gotoxy(29,12); cprintf("NO SE ENCONTRARON TELEFONOS"); } while(!kbhit()) { hora(); } fflush(stdin); textattr(color1); recuadro(2,2,79,24,1); } /*//MUESTRA EL CONTENIDO void contenido() { int a,c=2,paso=0,num=1; //INFO *lista; PERSONAS datos; FILE *fp; fp=fopen("musico.dat","rb"); recuadro(2,2,79,24,0); marco(2,2,79,24); //lista=plista; while(!feof(fp)) { if (paso==1) { gotoxy(5,c+1); cprintf("%d.-%s %s DNI:%s",num,datos.nombre,datos.apellidos,datos.dni); gotoxy(8,c+2); cprintf("%s",datos.direccion); gotoxy(8,c+3); cprintf("%5s %20s %10s tfno:%9s\n",datos.cod_postal,datos.localidad,datos.provincia,datos.tfno); // lista=lista->sig; c=c+4; num++; if(c==22) { c=2;gotoxy(37,24);cprintf("[PULSE TECLA]"); while(!kbhit()) { hora(); } while( kbhit() ) getch(); textattr(LIGHTGRAY); recuadro(3,3,78,23,0);textattr(color2); } } fread(&datos,sizeof(datos),1,fp); paso=1; } if(c==0) { marco(23,10,60,14); gotoxy(29,12); cprintf("NO SE ENCONTRARON MUSICOS"); } while(!kbhit()) { hora(); } fflush(stdin); textattr(LIGHTGRAY); recuadro(2,2,79,24,1); fclose(fp); } */ //BUSCA EL NOMBRE DE UNA PERSONA void busca() { char nombre[16],apellidos[21]; int a,b=0,c=0; PERSONAS *lista; lista=plista; recuadro(2,2,79,24,0); marco(2,2,79,24); gotoxy(4,3); cprintf("Nombre:"); captura(15,0,nombre,11,3); gotoxy(4,4); cprintf("Apellidos:"); captura(20,0,apellidos,14,4); while(lista->sig!=NULL) { if(c==20) {c=0;gotoxy(37,24);cprintf("[PULSE UNA TECLA]"); while(!kbhit()) { hora(); } fflush(stdin);recuadro(2,2,79,24,0);} if(strcmp(nombre,lista->nombre)==0&&strcmp(apellidos,lista->apellidos)==0) { recuadro(9,5,68,19,2); marco(9,5,68,19); gotoxy(10,6); cprintf("Apellidos:%s",datos.apellidos); gotoxy(41,6); cprintf("Nombre:%s",datos.nombre); gotoxy(10,8); cprintf("Direccion:%s",datos.direccion); gotoxy(10,10); cprintf("Localidad:%s",datos.localidad); gotoxy(41,10); cprintf("Provincia:%s",datos.provincia); gotoxy(10,12); cprintf("C.P.:%s",datos.cod_postal); gotoxy(36,12); cprintf("Edad:%s",datos.edad); gotoxy(51,12); cprintf("Tfno:%s",datos.tfno); gotoxy(10,14); cprintf("DNI:%s",datos.dni); gotoxy(36,14); cprintf("Instrumento:%s",datos.instrumento); b=1; c++; } lista=lista->sig; } if(b==0) {gotoxy(4,5);cprintf("Nombre no encontrado");} while(!kbhit()) { hora(); } fflush(stdin); textattr(color1); recuadro(2,2,79,24,1); } /*//BUSCA EL NOMBRE DE UNA PERSONA void busca() { char apellidos[20],nombre[15]; int encontrado=0; PERSONAS datos; FILE *fp; fp=fopen("musico.dat","rb"); recuadro(2,2,79,24,0); marco(2,2,79,24); gotoxy(4,3); cprintf("Nombre:"); captura(15,0,nombre,20,3); gotoxy(4,4); cprintf("Apellidos:"); captura(20,0,apellidos,20,4); while(!feof(fp)&&encontrado==0) { //while(!kbhit()) // { // hora(); // } fread (&datos,sizeof(datos),1,fp); if(strcmp(nombre,datos.nombre)==0&&strcmp(apellidos,datos.apellidos)==0) { encontrado=1; recuadro(9,5,68,19,2); marco(9,5,68,19); gotoxy(10,6); cprintf("Apellidos:%s",datos.apellidos); gotoxy(41,6); cprintf("Nombre:%s",datos.nombre); gotoxy(10,8); cprintf("Direccion:%s",datos.direccion); gotoxy(10,10); cprintf("Localidad:%s",datos.localidad); gotoxy(41,10); cprintf("Provincia:%s",datos.provincia); gotoxy(10,12); cprintf("C.P.:%s",datos.cod_postal); gotoxy(36,12); cprintf("Edad:%s",datos.edad); gotoxy(51,12); cprintf("Tfno:%s",datos.tfno); gotoxy(10,14); cprintf("DNI:%s",datos.dni); gotoxy(36,14); cprintf("Instrumento:%s",datos.instrumento); } } if(encontrado==0) {gotoxy(4,5);cprintf("Nombre no encontrado");} while(!kbhit()) { hora(); } fflush(stdin); textattr(7); recuadro(2,2,79,24,1); fclose(fp); } */ //RECUPERA void recupera() { FILE *fp; PERSONAS *lista; if((fp=fopen("musico.dat","rb"))==NULL) fp=fopen("musico.dat","wb"); else { fread(&datos,sizeof(datos),1,fp); lista=(PERSONAS *)malloc(sizeof(PERSONAS)); plista=lista; strcpy(lista->apellidos,datos.apellidos); strcpy(lista->nombre,datos.nombre); strcpy(lista->direccion,datos.direccion); strcpy(lista->localidad,datos.localidad); strcpy(lista->provincia,datos.provincia); strcpy(lista->cod_postal,datos.cod_postal); strcpy(lista->edad,datos.edad); strcpy(lista->tfno,datos.tfno); strcpy(lista->dni,datos.dni); strcpy(lista->instrumento,datos.instrumento); while(!feof(fp)) { fread(&datos,sizeof(datos),1,fp); lista->sig=(PERSONAS *)malloc(sizeof(PERSONAS)); lista=lista->sig; strcpy(lista->apellidos,datos.apellidos); strcpy(lista->nombre,datos.nombre); strcpy(lista->direccion,datos.direccion); strcpy(lista->localidad,datos.localidad); strcpy(lista->provincia,datos.provincia); strcpy(lista->cod_postal,datos.cod_postal); strcpy(lista->edad,datos.edad); strcpy(lista->tfno,datos.tfno); strcpy(lista->dni,datos.dni); strcpy(lista->instrumento,datos.instrumento); } } lista->sig=NULL; fclose(fp); } /////////////////////////////////DIARIO////////////////////////////////////// void diario(int subopcion) { //char clave[20]; //recuadro(30,10,53,14,0); //marco(30,10,53,14); //gotoxy(31,12); //cprintf("CLAVE:"); //captura(16,0,clave,37,12); //if (strcmp(clave,"PROHIBIDOX")==0) switch(subopcion) { case 1:visualizaag("toros");introduceag("toros");break; case 2:visualizaag("proce");introduceag("proce");break; case 3:visualizaag("conci");introduceag("conci");break; case 4:visualizaag("vario");introduceag("vario");break; // case 2:visualizadag();break; // case 3:visualizaag("toros");break; } /*else { gotoxy(31,13); cprintf("CLAVE INCORRECTA"); getch(); }*/ recuadro(30,10,53,14,1); } //INTRODUCE AGENDA LET * introduceag(char nombre[8]) { FILE *fp,*fp1; LET *letra,*letrant,*pletra; long espacio; struct date d; int x=3,y=3; char a='0'; recuadro(2,2,79,24,0); marco(2,2,79,24); letra=(LET *)malloc(sizeof(LET)); pletra=letra; letra->ant=NULL; while(a!='\x1B') { x++; if(x==79) {x=3;y=y+1;} if(x==3&&y>3&&letra->letra=='\b') {x=78;y=y-1;} if(y==20) { gotoxy(37,24);cprintf("[PULSE UNA TECLA]"); while(!kbhit()) { hora(); } textattr(color1);recuadro(3,3,78,23,0);textattr(color2);x=3;y=3; } gotoxy(x,y); cprintf("±"); while(!kbhit()) { hora(); } a=getch(); gotoxy(x,y); cprintf("%c",a); letra->letra=a; letrant=letra; letra->sig=(LET *)malloc(sizeof(LET)); if(letra->letra=='\b'&&y>2&&x>3) { gotoxy(x,y);cprintf(" "); gotoxy(x-1,y);cprintf(" ");x=x-2; letra->sig=NULL; letra=letra->ant; } else if(letra->letra=='\b'&&y>2&&x==3) {x=2;} else { letra=letra->sig; letra->ant=letrant; } } letra->sig=NULL; textattr(color1); recuadro(2,2,79,24,1); fp1=fopen("indiceag.dat","a+b"); //fp=fopen("agenda.dat","a+b"); fp=fopen(nombre,"a+b"); letra=pletra; while(letra->sig!=NULL) { simbolo.letra=letra->letra; fwrite(&simbolo.letra,sizeof(simbolo),1,fp); letra=letra->sig; } getdate(&d); espacio=ftell(fp); fwrite(&d,sizeof(d),1,fp1); fwrite(&espacio,sizeof(long),1,fp1); fclose(fp1); fclose(fp); return pletra; } //VISUALIZA AGENDA DE UN DIA EN CONCRETO void visualizadag(void) { FILE *fp,*fp1; LET *letra,*pletra,*letrant; struct date d; long espacio=0; long longitud=0; char pegote[10]; int dia=0,mes=0,ano=0; int x=3,y=4,encontrado=0; recuadro(2,2,79,24,0); marco(2,2,79,24); gotoxy(4,3); cprintf("Dia:"); captura(2,1,pegote,8,3); dia=matriz1; gotoxy(14,3); cprintf("Mes:"); captura(2,1,pegote,18,3); mes=matriz1; gotoxy(24,3); cprintf("A¤o:"); captura(4,1,pegote,28,3); ano=matriz1; letra=(LET *)malloc(sizeof(LET)); if((fp=fopen("agenda.dat","rb"))==NULL) {gotoxy(3,3);cprintf(" NO HAY DATOS EN ESTA OPCION ");getch();} else { fp1=fopen("indiceag.dat","rb"); while(!feof(fp1)&&encontrado==0) { fread(&d,sizeof(d),1,fp1); if(dia==d.da_day&&mes==d.da_mon&&ano==d.da_year) { encontrado=1; } longitud=espacio; fread(&espacio,sizeof(long),1,fp1); } if(encontrado==1) { fseek(fp,longitud,SEEK_SET); pletra=letra; fread(&simbolo.letra,sizeof(simbolo),1,fp); letra->letra=simbolo.letra; letra->ant=NULL; fread(&simbolo.letra,sizeof(simbolo),1,fp); while(simbolo.letra!='\x1B') { letrant=letra; letra->sig=(LET *)malloc(sizeof(LET)); letra=letra->sig; letra->letra=simbolo.letra; letra->ant=letrant; fread(&simbolo.letra,sizeof(simbolo),1,fp); } letra->sig=NULL; letra=pletra; while(letra->sig!=NULL) { x++; if(x==79) {x=3;y=y+1;} if(y==20) {gotoxy(37,24);cprintf("[PULSE UNA TECLA]"); while(!kbhit()) { hora(); } fflush(stdin); textattr(color1);recuadro(3,3,78,23,0);textattr(color2);x=3;y=3;} gotoxy(x,y); cprintf("%c",letra->letra); letra=letra->sig; } x++; if(x==79) {x=3;y=y+1;} gotoxy(x,y); cprintf("%c",letra->letra); } else { gotoxy(4,4); cprintf("NO SE ENCONTRO ESTA FECHA"); } while(!kbhit()) { hora(); } } fflush(stdin); textattr(color1); recuadro(2,2,79,24,1); fclose(fp); fclose(fp1); } //VISUALIZA AGENDA DESDE EL PRINCIPIO void visualizaag(char nombre[8]) { FILE *fp,*fp1; LET *letra,*pletra,*letrant; struct date d; long pego=0; long espacio=0; long longitud=0; char pegote[10]; int dia=0,mes=0,ano=0; int x=3,y=4,encontrado=0; int salir=0; recuadro(2,2,79,24,0); marco(2,2,79,24); letra=(LET *)malloc(sizeof(LET)); //if((fp=fopen("agenda.dat","rb"))==NULL) if((fp=fopen(nombre,"rb"))==NULL) {gotoxy(3,3);cprintf("[NO HAY DATOS EN LA AGENDA]");getch();} else { fp1=fopen("indiceag.dat","rb"); while(salir!=1) { recuadro(3,3,78,23,0); textattr(color2); fseek(fp1,pego,SEEK_SET); fread(&d,sizeof(d),1,fp1); fread(&espacio,sizeof(espacio),1,fp1); pego=ftell(fp1); if(feof(fp1)) salir=1; else { fseek(fp1,0,SEEK_SET); dia=d.da_day; mes=d.da_mon; ano=d.da_year; gotoxy(3,3); cprintf("dia:%d mes:%d a¤o:%d",dia,mes,ano); x=3;y=4; espacio=0; encontrado=0; while(!feof(fp1)&&encontrado==0) { fread(&d,sizeof(d),1,fp1); if(dia==d.da_day&&mes==d.da_mon&&ano==d.da_year) { encontrado=1; } longitud=espacio; fread(&espacio,sizeof(long),1,fp1); } if(encontrado==1) { fseek(fp,longitud,SEEK_SET); pletra=letra; fread(&simbolo.letra,sizeof(simbolo),1,fp); letra->letra=simbolo.letra; letra->ant=NULL; fread(&simbolo.letra,sizeof(simbolo),1,fp); while(simbolo.letra!='\x1B') { letrant=letra; letra->sig=(LET *)malloc(sizeof(LET)); letra=letra->sig; letra->letra=simbolo.letra; letra->ant=letrant; fread(&simbolo.letra,sizeof(simbolo),1,fp); } letra->sig=NULL; letra=pletra; while(letra->sig!=NULL) { x++; if(x==79) {x=3;y=y+1;} if(y==20) {gotoxy(37,24);cprintf("[PULSE UNA TECLA]"); while(!kbhit()) { hora(); } while( kbhit() ) getch(); fflush(stdin); textattr(color1);recuadro(3,3,78,23,0);textattr(color2);x=3;y=3;} gotoxy(x,y); cprintf("%c",letra->letra); letra=letra->sig; } x++; if(x==79) {x=3;y=y+1;} gotoxy(x,y); cprintf("%c",letra->letra); } else { gotoxy(4,4); cprintf("NO SE ENCONTRO ESTA FECHA"); } while(!kbhit()) { hora(); } while( kbhit() ) getch(); } } } fflush(stdin); textattr(color1); recuadro(2,2,79,24,1); fclose(fp); fclose(fp1); } /////////////////////////////////FICHEROS//////////////////////////////////// void ficheros(char nombre[8]) { visualizaag(nombre); introduceag(nombre); } ///////////////////////////////////CAPTURA/////////////////////////////////// void captura(int tam,int elec,char nombre[80],int x,int y) { int i=0,c=0,c1=0; matriz1=0; if(elec==0) { do { gotoxy(x+i,y); cprintf("þ"); if (isig!=NULL) { strcpy(datos.apellidos,lista->apellidos); strcpy(datos.nombre,lista->nombre); strcpy(datos.direccion,lista->direccion); strcpy(datos.localidad,lista->localidad); strcpy(datos.provincia,lista->provincia); strcpy(datos.cod_postal,lista->cod_postal); strcpy(datos.edad,lista->edad); strcpy(datos.tfno,lista->tfno); strcpy(datos.dni,lista->tfno); strcpy(datos.instrumento,lista->tfno); fwrite(&datos,sizeof(datos),1,fp); lista=lista->sig; } fclose(fp); } // -------------------------------- * ------------------------------ #define ANCHO 80; typedef struct PTexto { char *LineaC; }; void RefreshTexto( PTexto *PT, int NLineas, int NLinicio ) { int i, j; for ( i = 0; i < NLinicio; i++ ) PT++; for ( i = NLinicio, j = 0; i < NLineas && j < 21; i++, j++ ) { gotoxy( 2, j ); printf( "%s", PT -> LineaC ); PT++; } } void PTextos( char *file ) { FILE *PFio; PTexto *PTxt, *p_aux; int NumL; if ( ( PFio = fopen( file, "rw+" ) ) == NULL ) { // No se puede abrir el fichero -ERROR- return; } else { // Seguimos // No hay memoria -ERROR- return; p_aux = PTxt; NumL = 1; while ( !eof( PFio ) ) { NumL++; if ( ( PTxt = (PTexto *)calloc( sizeof(PTexto *), NumL ) ) == NULL ) { // -ERROR return; } if ( p_aux -> LineaC = (char *)calloc( sizeof( char ), 80 ) ) == NULL ) { // -ERROR- return; } else { // Leemos el caracter fscanf( PFio, "%80s", p_aux -> LineaC ); } p_aux ++; }; RefreshTexto( PTxt, NumL, 0 ); } }