• Miércoles 15 de Mayo de 2024, 06:17

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - rocho09

Páginas: [1]
1
C/C++ / Voz En C++
« en: Martes 9 de Noviembre de 2004, 08:28 »
Hola a todos!!!

Espero que alguno de ustedes me pueda ayudar, necesito saber como manipular el sonido que entra a la PC, para realizar instrucciones de acuerdo a lo que ingresa el usuario por medio del microfono, gracias!!!!

2
C/C++ / Re: Archivos En C
« en: Jueves 22 de Julio de 2004, 08:20 »
:D Hola creo te estas complicando demasiado las cosas te envio codigo de una agenda q emplea el mismo concepto que estas buscando, checa las funciones de separa y de carga_registro, para que después las apliques a tu programa

Espero te funcione


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

struct directorio
{
   int id_agenda;
   char nombre[100];
   char direccion[200];
   char telefono[20];
   char e_mail[100];
};

int folio=0;
FILE *arch_salida, *archivo;

void salir(struct directorio *agenda)
{
   char registro[450],id[4];
   struct directorio paso;
   char path[250];
   sprintf(path,"c:\\registros.txt");
   if((arch_salida=fopen(path,"w"))==NULL)
      printf("\tError al abrir el archivo");
   else
   {
      for(int i=0;i<folio;i++)
      {
         strcpy(registro,"\0");
         strcpy(id,"\0");
         sprintf(id,"%d",i+1);
         strcat(id,"|");
      
         strcpy(paso.nombre,(agenda+i)->nombre);
         strcpy(paso.direccion,(agenda+i)->direccion);
         strcpy(paso.telefono,(agenda+i)->telefono);
         strcpy(paso.e_mail,(agenda+i)->e_mail);

         strcat(paso.nombre,"|");
         strcat(paso.direccion,"|");
         strcat(paso.telefono,"|");
         strcat(paso.e_mail,"\n");
   
         strcat(registro,id);
         strcat(registro,paso.nombre);
         strcat(registro,paso.direccion);
         strcat(registro,paso.telefono);
         strcat(registro,paso.e_mail);
      
         fputs(registro,arch_salida);
      }
         fclose(arch_salida);
   }
   printf("\n\n\t***** Datos Actualizados ***** \n");
}



int ordena(const void *a, const void *B)
{

  struct directorio *ap_a;
  struct directorio *ap_b;
  ap_a=(struct directorio*)a;
  ap_b=(struct directorio*)b;
  return (strcmp(ap_a->nombre, ap_b->nombre));
}


int cuenta_registros(void)
{
   int cont_reg=0;
   char registro[450];
   if((archivo=fopen("c:\\registros.txt","r"))==NULL)
   {
      printf("\nError: Archivo no leido\n");
   }
   else
   {
      while((fgets(registro,450,archivo))!=NULL)
      {
         cont_reg++;
      }
      fclose(archivo);
   }
   return (cont_reg);
}

struct directorio separa(char *registro)
{
   char campo[100], letra[2];
   int longitud=0, pos, cont=0, id_a=0;
   struct directorio alumno;

   longitud= strlen(registro);
   campo[0]='\0';
   for(pos=0; pos<longitud; pos++)
   {
      strcpy(letra,"\0");
      strncpy(letra,registro+pos,1);
      if(letra[0]!='|' && letra[0]!='\n')
      {
         letra[1]='\0';
         strcat(campo,letra);
      }
      else
      {
         cont++;
         if(cont==1)
            id_a=atoi(campo);
            alumno.id_agenda=id_a;
         if(cont==2)
            strcpy(alumno.nombre,campo);
         if(cont==3)
            strcpy(alumno.direccion,campo);
         if(cont==4)
            strcpy(alumno.telefono,campo);
         if(cont==5)
            strcpy(alumno.e_mail,campo);
         strcpy(campo,"\0");
      }
   }
   return(alumno);
}

void cargar(struct directorio *arreglo)
{
   int reg=0;
   char registro[450];
   if((archivo=fopen("c:\\registros.txt","r"))==NULL)
      printf("\nError: Archivo no leido\n");
   else
   {
      printf("\t***** Archivo cargado con exito!!! *****");
      getch();
      while((fgets(registro,450,archivo))!=NULL)
      {
         *(arreglo+reg)=separa(registro);
         reg++;
      }
      fclose(archivo);
   }
   
}

void altas(struct directorio *agenda)
{
   struct directorio datos, *pos_bus;
   fflush(stdin);
   printf("\n\tIntroduce el nombre: ");
   gets(datos.nombre);
   fflush(stdin);
   qsort((void *)agenda, folio, sizeof(agenda[0]), ordena);
   pos_bus=(struct directorio *)bsearch((void *)&datos,(void *)agenda,folio,sizeof(struct directorio),ordena);
   if(pos_bus!=NULL)
   {
      printf("\n\tRegistro encontrado, ya existe, presiona una tecla para continuar...");
      getch();
      strcpy(datos.nombre,"\0");
      return;
   }
   else
   {
      if(folio<50)
      {
         printf("\tDireccion: ");
         gets(datos.direccion);
         printf("\tTelefono: ");
         gets(datos.telefono);
         printf("\tE mail: ");
         gets(datos.e_mail);
         datos.id_agenda=folio+1;
         *(agenda+folio)=datos;
         folio++;
      }
      else
      {
         printf("\tNo hay espacio para otro registro");
         getch();
      }
   }
}

void bajas(struct directorio *agenda)
{
   struct directorio busca,*pos_bus;
   char opc;
   printf("Inserta el nombre del registro a eliminar: ");
   fflush(stdin);
   gets(busca.nombre);
   qsort((void *)agenda, folio, sizeof(agenda[0]), ordena);
   pos_bus=(struct directorio *)bsearch((void *)&busca,(void *)agenda,folio,sizeof(struct directorio),ordena);
   if(pos_bus==NULL)
   {
      printf("No existe algun registro con ese nombre...");
      getch();
      strcpy(busca.nombre,"\0");
      return;
   }
   else
   {
      printf("Id agenda: %d\n",pos_bus->id_agenda);
      printf("Nombre: %s\n",pos_bus->nombre);
      printf("Direccion: %s\n",pos_bus->direccion);
      printf("Telefono: %s\n",pos_bus->telefono);
      printf("E mail: %s\n",pos_bus->e_mail);
   }
   printf("Desea eliminar este registro S o N?\n");
   scanf("%c",&opc);
   if(toupper(opc=='s'))
   {
      pos_bus->id_agenda=NULL;
      *(pos_bus->nombre)=NULL;
      *(pos_bus->direccion)=NULL;
      *(pos_bus->telefono)=NULL;
      *(pos_bus->e_mail)=NULL;
      *(pos_bus)=*(agenda+(folio-1));
      (agenda+(folio-1))->id_agenda=NULL;
      *(agenda+(folio-1))->nombre=NULL;
      *(agenda+(folio-1))->direccion=NULL;
      *(agenda+(folio-1))->telefono=NULL;
      *(agenda+(folio-1))->e_mail=NULL;
      folio--;
      printf("\n\tRegistro borrado satisfactoriamente, presiona una tecla para continuar");
      getch();
     }
}


void consulta(struct directorio *agenda)
{
   struct directorio busca, *pos_bus;
   printf("\tIntroduce el nombre a consultar :");
   fflush(stdin);
   gets(busca.nombre);
   qsort((void *)agenda, folio, sizeof(agenda[0]), ordena);
   pos_bus=(struct directorio *)bsearch((void *)&busca,(void *)agenda,folio,sizeof(struct directorio),ordena);
   if(pos_bus==NULL)
   {
      printf("Nombre no encontrado...");
      getch();
      strcpy(busca.nombre,"\0");
   }
   else
   {
      printf("Id agenda: %d\n",pos_bus->id_agenda);
      printf("Nombre: %s\n",pos_bus->nombre);
      printf("Direccion: %s\n",pos_bus->direccion);
      printf("Telefono: %s\n",pos_bus->telefono);
      printf("E mail: %s\n",pos_bus->e_mail);
   }
}

void visualiza(struct  directorio *agenda)
{
   int i=0;
   for(i=0;i<folio;i++)
   {
      printf("\n\tId agenda: %d\n",(agenda+i)->id_agenda);
      printf("\tNombre: %s\n",(agenda+i)->nombre);
      printf("\tDireccion: %s\n",(agenda+i)->direccion);
      printf("\tTelefono: %s\n",(agenda+i)->telefono);
      printf("\tE mail: %s\n",(agenda+i)->e_mail);
   }
   getch();
}

void menu()
{
   
   struct directorio *agenda;
   int opcion;
   agenda=(struct directorio *)malloc(50*sizeof(struct directorio));
   folio=cuenta_registros();
   cargar(agenda);
   while(opcion!=5)                    
   {
      
      system("cls");
      printf("\t\t***** MENU *****\n\n");
      printf("\t1.- Ingresar registro");
      printf("\n\t2.- Borrar registro");
      printf("\n\t3.- Consultar registro");
      printf("\n\t4.- Visualizar Agenda");
      printf("\n\t5.- Salir\n");
      printf("\n\n\tSeleccione una opcion: ");
      scanf("%i",&opcion);

      switch(opcion){
      case 1: altas(agenda);break;  
      case 2: bajas(agenda);break;    
      case 3: consulta(agenda);break;
      case 4: visualiza(agenda);break;
      case 5: salir(agenda);free(agenda); exit(0); break;
      default: printf("\n\tOpcion no valida...");
       printf("\n\t<Presione una tecla para continuar>");getch();break;
      }
   }
}

void main()
{
   menu();
   
}

3
ASM (Ensamblador) / Re: Juego Del Ahorcado En Ensamblador
« en: Martes 20 de Abril de 2004, 05:58 »
tengo unos problemas en cuanto a la lectura de archivos, las palabras con las que tiene que trabajar el programa debe de estar en un archivo de texto y deben ser leidas por medio del programa.  ¿Como las leo y las paso al programa para imprimir los espacios que tiene que completar el usuario???? :blink:

4
ASM (Ensamblador) / Juego Del Ahorcado En Ensamblador
« en: Domingo 18 de Abril de 2004, 23:14 »
Me encuentro generando el código para realizar este juego sin embargo tengo problemas con el, espero que alguien me pueda ayudar lo más pronto posible, gracias!!!  :blink:

Páginas: [1]