/* Se autoriza la distribucion y uso libre de este programa (freeware) */ /* Fernando Galindo Soria Cd. de Mexico */ /* programa que genera sonidos a partir de caracteres que lee de un archivo 1 18 de septiembre de 1999*/ #include #include #include #include char nom_arch[80]; void main(void) { FILE *entra; int i,posicion; unsigned char car, tecla=0; int gd=DETECT,gm; // mensaje de inicio clrscr(); printf("programa que genera sonidos a partir de caracteres que lee de un archivo 1\n"); printf("18 de septiembre de 1999\n"); printf("Se autoriza la distribucion y uso libre de este programa (freeware)\n"); printf("Fernando Galindo Soria Cd. de Mexico\n"); printf("\ndetiene sonido con y termina con "); // abre archivo printf("\n***Dame el nombre del archivo***\n"); scanf("%s",nom_arch); entra = fopen(nom_arch, "rt+"); printf("\n***Dame la posicion inicial (a partir de 0)*** "); scanf("%d",&posicion); fseek(entra,posicion,SEEK_SET); initgraph(&gd,&gm,""); // lee datos i=0; moveto(i,280); do{ do // inicia el ciclo para leer caracteres { car= fgetc(entra); // lee un caracter del archivo sound(car*7); delay(55); // genera sonido lineto(i+=3,280-car); printf("%c",car); if(i>getmaxx()) {posicion+=i;i=0;setgraphmode(getgraphmode());moveto(i,280-car);} if (kbhit()!=0)tecla=getch(); // pregunta si presionaron el teclado if(tecla==32) //detiene sonido al presionar {nosound(); printf(" %d ",i/3+posicion); getch(); tecla=0;} } while (car!=255 && tecla!=27); /* repite el ciclo de leer hasta encontrar el fin de archivo EOF o hasta que se presiona */ nosound(); printf(" %d quieres terminar s/n)",i/3+posicion); tecla=getch(); } while(tecla!='s' && tecla!=27); // cierra nosound(); fclose(entra); printf("\n****************\n**oprime una tecla para terminar**\n"); getch(); closegraph(); }