SHARE
TWEET

proyecto

a guest Jun 25th, 2019 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio.h>
  5. #include "gotoxy.h"
  6. #include <time.h>
  7.  
  8. #define arUsuario "usuario.DAT"
  9. #define arMusica "musica.DAT"
  10.  
  11. ///ESTRUCTURAS__________________________________________________________________________________
  12. ///_____________________________________________________________________________________________
  13.  
  14. typedef struct
  15. {
  16.     int idUsuario;
  17.     char nombreUsuario[30];
  18.     char pass[20];
  19.     int anioNacimiento;
  20.     char genero;
  21.     char pais[20];
  22.     int playlist[50]; //Guarda los id de las canciones.
  23.     int cantidad; // Es el válidos de la playlist.
  24.     int eliminado;   // indica 1 o 0 si el cliente fue eliminado
  25. } stUsuario;
  26.  
  27.  
  28. typedef struct
  29. {
  30.     int idCancion;
  31.     char titulo[30];
  32.     char artista[20];
  33.     int duracion;
  34.     char album[20];
  35.     int anio;
  36.     char genero[20];
  37.     char comentario[100];
  38.     int eliminado;  // indica 1 o 0 si la canción fue eliminada
  39. } stCancion;
  40.  
  41.  
  42. ///PROTOTIPADOS________________________________________________________________________________
  43. ///____________________________________________________________________________________________
  44. void banner();
  45. void cargaArchivoUsuario();
  46. int buscarUltimoId();
  47. void guardarUsuario(stUsuario a);
  48. int validarInicioSesion (char user[], char contra[]);
  49. void inicioSesion ();
  50. void menuPrimerPantalla();
  51. void mostrarRegistro();
  52. int existenciaNombreUsuario(char user[]);
  53. void mostrarUnUsuario(stUsuario a);
  54. void menuAdmin();
  55. char opcionesMenuAdmin();
  56. void mostrar(stUsuario a);
  57. void empaquetar(FILE **pArchUsuario);
  58. void mostrarUnUsuario(stUsuario a);
  59. void cargaDeMusica ();
  60. void mostrarCancion (stCancion b);
  61. void mostrarCanciones();
  62. void usuarioAdmin ();
  63.  
  64.  
  65. ///MAIN_________________________________________________________________________________________
  66. ///_____________________________________________________________________________________________
  67.  
  68. int main()
  69. {
  70.     ///Al inicio del programa, se muestra el banner y menu de opciones.
  71.     menuPrimerPantalla();
  72.     ///En este punto, el usuiario ya habrá ingresado al sistema.
  73.     ///Habiendo creado su usuario si fuera necesario.
  74.  
  75.  
  76.     ///Nota de desarrollo --->> Lo próximo es acomodar el inicio de sesión.
  77.  
  78.  
  79.     return 0;
  80.  
  81. }
  82.  
  83.  
  84. ///FUNCIONES____________________________________________________________________________________
  85. ///_____________________________________________________________________________________________
  86.  
  87. void cargaArchivoUsuario()
  88. {
  89.     char pass1[20], pass2[20];
  90.     char caracter1=0;
  91.     char caracter2=0;
  92.     int existencia=0;
  93.     stUsuario rgUsuarios;
  94.     rgUsuarios.idUsuario = buscarUltimoId() + 1;
  95.  
  96.     do
  97.     {
  98.         system("cls");
  99.         banner();
  100.         printf("\n\n\t\t\t\t\t\t\t\t\t <<< REGISTRE UN USUARIO >>>\n");
  101.         printf("\n\t\t\t\t\t\t\t\t\t%c Nombre de usuario.........: ",175);
  102.         scanf("%s",rgUsuarios.nombreUsuario);
  103.         existencia = existenciaNombreUsuario(rgUsuarios.nombreUsuario);
  104.         if(existencia == 1)
  105.         {
  106.             printf("\t\t\t\t\t\t\t\t\tEl usuario ya existe, intente con otro nombre.\n");
  107.             printf("\n\n");
  108.             printf("\t\t\t\t\t\t\t\t\t");
  109.             system("pause");
  110.         }
  111.         ///si existencia toma valor 1, el usuario debe pensar otro nombre hasta que existencia sea 0
  112.     }
  113.     while(existencia!=0);
  114.  
  115.     do
  116.     {
  117.         int  i=0;
  118.         printf("\n\t\t\t\t\t\t\t\t\t%c Contrase%ca................: ",175, 164);
  119.         while (caracter1 != 13)
  120.         {
  121.             caracter1 = getch();
  122.  
  123.             if(caracter1 == 13)
  124.             {
  125.                 pass1[i] = '\0';
  126.             }
  127.             else if (caracter1 == 8)
  128.             {
  129.                 if (i > 0)
  130.                 {
  131.                     i--;
  132.                     printf("\b \b");
  133.                 }
  134.             }
  135.             else
  136.             {
  137.                 printf("*");
  138.                 pass1[i] = caracter1;
  139.                 i++;
  140.             }
  141.         }
  142.         i = 0;
  143.         fflush(stdin);
  144.         printf("\n\t\t\t\t\t\t\t\t\t%c Confirmar contrase%ca......: ",175, 164);
  145.         while (caracter2 != 13)
  146.         {
  147.             caracter2 = getch();
  148.  
  149.             if(caracter2 == 13)
  150.             {
  151.                 pass2[i] = '\0';
  152.             }
  153.             else if (caracter2 == 8)///si el caracter tiene ASCII 8 se trata de la tecla de borrado a la iz ( backslash)
  154.             {
  155.                 if (i > 0)
  156.                 {
  157.                     i--;
  158.                     printf("\b \b");///el barra B es un caracter de backslash( lo que hace es mover el cursor
  159.                 }                 ///hacia la izquierda, luego un espacio en blanco para borrar *, y otro backslash
  160.             }                    ///para volver a llevar el cursor a la izq, y usamos el i>0, para no borrar todo y que tenga un tope
  161.             else
  162.             {
  163.                 printf("*");
  164.                 pass2[i] = caracter2;
  165.                 i++;
  166.             }
  167.         }
  168.         fflush(stdin);
  169.  
  170.         if(strcmp(pass1,pass2) != 0)
  171.             printf("\n\t\t\t\t\t\t\t\t\tLas contrase%cas no coinciden. Intente de nuevo.\n", 164);
  172.  
  173.     }
  174.     while(strcmp(pass1, pass2 ) != 0);
  175.     strcpy (rgUsuarios.pass, pass1);
  176.  
  177.     do
  178.     {
  179.         printf("\n\n\t\t\t\t\t\t\t\t\tA%co de nacimiento ..........: ", 164);
  180.         scanf("%d", &rgUsuarios.anioNacimiento);
  181.  
  182.         if(rgUsuarios.anioNacimiento > 2003)
  183.         {
  184.             printf("\t\t\t\t\t\t\t\t\tDebe ser mayor de 16 (dieciseis) a%cos para poder registrarse.\n", 165);
  185.         }
  186.     }
  187.     while(rgUsuarios.anioNacimiento > 2003);
  188.  
  189.     do
  190.     {
  191.         printf("\n\n\t\t\t\t\t\t\t\t\t%c Genero ( F / M / O )......: ",175);
  192.         fflush(stdin);
  193.         scanf("%c", &rgUsuarios.genero);
  194.         rgUsuarios.genero = toupper (rgUsuarios.genero);
  195.  
  196.         if((rgUsuarios.genero != 'M') && (rgUsuarios.genero != 'F') && (rgUsuarios.genero != 'O'))
  197.         {
  198.             printf("\t\t\t\t\t\t\t\t\tDato invalido.\n");
  199.         }
  200.     }
  201.     while((rgUsuarios.genero != 'M') && (rgUsuarios.genero != 'F') && (rgUsuarios.genero != 'O'));
  202.  
  203.     printf("\n\t\t\t\t\t\t\t\t\t%c Pais......................: ",175);
  204.     fflush(stdin);
  205.     gets(rgUsuarios.pais);
  206.  
  207.     printf("\n\n\n\t\t\t\t\t\t\t\t\t\tUsuario creado exitosamente. ");
  208.     printf("\n\t\t\t\t\t\t\t\t\t\t%cDisfrute de Jukebox!", 173);
  209.  
  210.     guardarUsuario(rgUsuarios);
  211.     rgUsuarios.idUsuario ++;
  212.     getch();
  213.     system("cls");
  214. }
  215.  
  216.  
  217. int buscarUltimoId()
  218. {
  219.     int id = 0;
  220.     stUsuario rgUsuarios;
  221.     FILE *pArchUsuario = fopen(arUsuario,"rb");
  222.     if(pArchUsuario != NULL)
  223.     {
  224.         fseek(pArchUsuario, sizeof(stUsuario) * (-1), SEEK_END);
  225.         if(fread(&rgUsuarios, sizeof(stUsuario), 1,pArchUsuario) > 0)
  226.         {
  227.             id = rgUsuarios.idUsuario;
  228.         }
  229.     }
  230.     fclose(pArchUsuario);
  231.     return id;
  232. }
  233.  
  234. void guardarUsuario(stUsuario rgUsuarios)
  235. {
  236.     FILE *pArchUsuario = fopen(arUsuario,"ab");
  237.     if(pArchUsuario != NULL)
  238.     {
  239.         fwrite(&rgUsuarios, sizeof(stUsuario), 1,pArchUsuario);
  240.         fclose(pArchUsuario);
  241.     }
  242. }
  243.  
  244. int validarInicioSesion (char user[], char contra[])
  245. {
  246.     stUsuario us1;
  247.     FILE *pArchUsuario = fopen(arUsuario,"rb");
  248.     int flag = 0;
  249.     int flag2 = 0;
  250.     int corroborar = 0;
  251.  
  252.     if (pArchUsuario != NULL)
  253.     {
  254.  
  255.         while( !flag && (fread(&us1, sizeof(stUsuario), 1, pArchUsuario) > 0) )
  256.         {
  257.             if (strcmpi(us1.nombreUsuario, user)== 0)
  258.                 flag++;
  259.         }
  260.         if (strcmpi(us1.pass, contra)== 0)
  261.             flag2++;
  262.     }
  263.  
  264.     /* if (!fclose(pArchUsuario)!= 0)
  265.      {
  266.          system("cls");
  267.          printf("\nError al cerrar archivo.");
  268.      }
  269.      else
  270.      {
  271.          system("cls");
  272.          printf("\nError al abrir el archivo.");
  273.      }
  274.      */
  275.     if (flag == 0 && flag2 == 0)
  276.     {
  277.         printf("\n\t\t\t\t\t\t\t\tSu usuario o contrase%ca son incorrectos.",164);
  278.     }
  279.     else if(flag == 1 && flag2 == 0)
  280.     {
  281.         printf("\n\t\t\t\t\t\t\t\tSu contrase%ca es invalida.", 164);
  282.     }
  283.     else if(flag == 1 && flag2 == 1)
  284.     {
  285.         corroborar++;
  286.         printf("\n\t\t\t\t\t\t\t\t\tINGRESO AL SISTEMA CORRECTAMENTE.\n\t\t\t\t\t\t\t\t\tBORRAR ESTO CUANDO HAYA SISTEMA.");
  287.     }
  288.  
  289.     fclose(pArchUsuario);
  290.     return  corroborar ;
  291.     ///corroborar fue inicializada en 0.
  292.     ///Sólo tomará valor 1 en caso de que usuario y contraseña sean correctos.
  293. }
  294.  
  295. void inicioSesion ()
  296. {
  297.     char a[40];
  298.     char b [40];
  299.     char usAdmin= {"admin"};
  300.     char psAdmin= {"admin"};
  301.     int rta=0;
  302.     int rtaAdm=0;
  303.     char caracter=0;
  304.     int i=0;
  305.  
  306.     do
  307.     {
  308.         system("cls");
  309.  
  310.         banner();
  311.  
  312.         printf("\n\n\n\t\t\t\t\t\t\t\t\t%c USUARIO: ", 175);
  313.         fflush(stdin);
  314.         gets(a);
  315.         printf("\n\t\t\t\t\t\t\t\t\t%c CONTRASE%cA: ", 175, 165);
  316.         fflush(stdin);
  317.         while (caracter != 13)
  318.         {
  319.             caracter = getch();
  320.  
  321.             if(caracter == 13)
  322.             {
  323.                 b[i]='\0';
  324.             }
  325.             else if(caracter==8)
  326.             {
  327.                 if(i>0)
  328.                 {
  329.                     i--;
  330.                     printf("\b \b");
  331.                 }
  332.  
  333.             }
  334.             else
  335.             {
  336.                 printf("*");
  337.                 b[i]=caracter;
  338.                 i++;
  339.  
  340.             }
  341.  
  342.             fflush(stdin);
  343.         }
  344.         rta = validarUsuarioAdmin(a,b);
  345.         if(rta == 1)
  346.         {
  347.             fflush(stdin);
  348.             menuAdmin();
  349.         }
  350.         else
  351.         {
  352.             rta = validarInicioSesion(a,b);
  353.             printf("\t\t\t\t\t\t\t\t\t");
  354.             system("pause");
  355.         }
  356.     }
  357.     while(rta != 1 && rta == 0);
  358.  
  359.  
  360.     ///Ya que rta podría tener valor 0 o 1, puede ser redundante la condicion del while.
  361.     ///Aún así, decido usarla igual para detectar el problema rapidamente en caso de error.
  362.  
  363.     if(rta != 0 && rta != 1)
  364.     {
  365.         printf("SE PRODUJO UN ERROR EN LA VALIDACION DEL INICIO DE SESION");
  366.     }
  367. }
  368.  
  369.  
  370. void menuPrimerPantalla()
  371. {
  372.     char option;
  373.  
  374.  
  375.     ///Siempre al mostrar estas opciones, mostramos el banner.
  376.     banner();
  377.  
  378.     printf("\n\n\n\t\t\t\t\t\t\t\t\t1. Iniciar Sesi%cn.", 162);
  379.     printf("\n\t\t\t\t\t\t\t\t\t2. Registrarse.\n");
  380.     printf("\n\t\t\t\t\t\t\t\t\t>> ");
  381.     option = getche();
  382.  
  383.     switch(option)
  384.     {
  385.     case '1':
  386.         inicioSesion ();
  387.         break;
  388.  
  389.     case '2':
  390.         cargaArchivoUsuario();
  391.         inicioSesion ();
  392.         break;
  393.     }
  394.  
  395. }
  396.  
  397. void banner()
  398. {
  399.     srand(time(NULL));
  400.     color(rand()%14+1);
  401.     printf("\n\n\n");
  402.     printf("\t\t\t\t\t         /$$$$$             /$$                   /$$                            \n");
  403.     printf("\t\t\t\t\t        |__  $$            | $$                  | $$                            \n");
  404.     printf("\t\t\t\t\t           | $$  /$$   /$$ | $$   /$$   /$$$$$$  | $$$$$$$    /$$$$$$   /$$   /$$\n");
  405.     printf("\t\t\t\t\t           | $$ | $$  | $$ | $$  /$$/  /$$__  $$ | $$__  $$  /$$__  $$ |  $$ /$$/\n");
  406.     printf("\t\t\t\t\t      /$$  | $$ | $$  | $$ | $$$$$$/  | $$$$$$$$ | $$  \\ $$ | $$  \\ $$  \\  $$$$/ \n");
  407.     printf("\t\t\t\t\t     | $$  | $$ | $$  | $$ | $$_  $$  | $$_____/ | $$  | $$ | $$  | $$   >$$  $$ \n");
  408.     printf("\t\t\t\t\t     |  $$$$$$/ |  $$$$$$/ | $$ \\  $$ |  $$$$$$$ | $$$$$$$/ |  $$$$$$/  /$$/\\  $$\n");
  409.     printf("\t\t\t\t\t      \\______/   \\______/  |__/  \\__/  \\_______/ |_______/   \\______/  |__/  \\__/\n");
  410.     color(15);
  411. }
  412.  
  413. ///En las funciones de inicio de sesion no contemplo el archivo en el parametro, ya que lo tengo definido como const
  414. ///ahora en inic sesion es variable local, era antes un acoplamiento de funciones
  415.  
  416. int existenciaNombreUsuario(char user[])
  417. {
  418.     ///Cuando el valor de flag sea 1, quiere decir que el user ya esta creado.
  419.     stUsuario us1;
  420.     FILE *pArchUsuario = fopen(arUsuario,"rb");
  421.     int flag=0;
  422.  
  423.  
  424.     if (pArchUsuario != NULL)
  425.     {
  426.         while( !flag && (fread(&us1, sizeof(stUsuario), 1, pArchUsuario) > 0) )
  427.         {
  428.             if (strcmpi(us1.nombreUsuario, user)== 0)
  429.                 flag++;
  430.         }
  431.     }
  432.     return flag;
  433. }
  434.  
  435. /// ---------------------------------------- FUNCIONES ADMIN----------------------------------------------
  436. void menuAdmin()
  437. {
  438.     FILE *pArchUsuario;
  439.     stUsuario a;
  440.     char option;
  441.     long numero;
  442.     pArchUsuario = fopen ("usuario.DAT", "rb+"); // Este modo permite leer y escribir
  443.     if (!pArchUsuario)
  444.         pArchUsuario = fopen ("usuario.DAT", "wb+"); // si el fichero no existe, lo crea.
  445.     do
  446.     {
  447.         switch (option = opcionesMenuAdmin())
  448.         {
  449.         case '1': // Mostrar registro
  450.             system ("cls");
  451.             printf ("Mostrar registro: ");
  452.             scanf ("%d", &numero);
  453.             fseek (pArchUsuario,sizeof(stUsuario)*numero, SEEK_SET);
  454.             fread (&a, sizeof (stUsuario), 1, pArchUsuario);
  455.             mostrar (a);
  456.             break;
  457.         case '2': // Eliminar registro
  458.             system ("cls");
  459.             printf ("Eliminar registro: ");
  460.             scanf ("%d", &numero);
  461.             fseek (pArchUsuario, numero * sizeof (stUsuario), SEEK_SET);
  462.             fread (&a, sizeof (stUsuario), 1, pArchUsuario);
  463.             a.eliminado = 0;
  464.             fseek (pArchUsuario, numero * sizeof (stUsuario), SEEK_SET);
  465.             fwrite (&a, sizeof (stUsuario), 1, pArchUsuario);
  466.             break;
  467.         case '3': // Mostrar todo
  468.             system("cls");
  469.             mostrarRegistro();
  470.             system ("PAUSE");
  471.             break;
  472.         case '4': // Eliminar marcados
  473.             empaquetar(&pArchUsuario);
  474.             break;
  475.         case '5': // Cargar musica
  476.             system("cls");
  477.             cargaDeMusica();
  478.             break;
  479.         case '6': // Mostrar canciones
  480.             system("cls");
  481.             mostrarCanciones();
  482.             system("pause");
  483.             break;
  484.         }
  485.     }
  486.     while (option != 0);
  487.     fclose (pArchUsuario);
  488. }
  489.  
  490. char opcionesMenuAdmin()
  491. {
  492.     int respuesta;
  493.     do
  494.     {
  495.         system ("cls");
  496.         printf ("\n\n\n\tMENU PRINCIPAL\n\t --------------\n\n\t[ 1 ] - Mostrar registro\n\t");
  497.         printf ("[ 2 ] - Eliminar registro\n\t[ 3 ] - Mostrar todo\n\t[ 4 ] - Eliminar registros marcados\n\t[ 5 ] - Cargar Musica\n\t[ 6 ] - Mostrar Canciones\n\t[ 0 ] - Salir\n\n\t");
  498.         fflush (stdin);
  499.         respuesta = getche ();
  500.     }
  501.     while (respuesta < '0' && respuesta > '7');
  502.     return respuesta;
  503.  
  504. }
  505. ///--------------------------------------------------- Muestra un registro por pantalla, si no está marcado como borrado --------------------------------------------------
  506. void mostrar(stUsuario a)
  507. {
  508.     printf("\n Eliminado ..............: %d", a.eliminado);
  509.     printf("\n Id ....................: %d",a.idUsuario);
  510.     printf("\n Nombre ................: %s",a.nombreUsuario);
  511.     printf("\n Contrase%ca ............: %s",164, a.pass);
  512.     printf("\n A%co ...................: %d",164, a.anioNacimiento);
  513.     printf("\n Genero ................: %c",a.genero);
  514.     printf("\n Pais ..................: %s\n",a.pais);
  515.  
  516.     system ("PAUSE");
  517. }
  518. ///---------------------------------------------------------------- Elimina los registros marcados como borrados -----------------------------------------------------------------
  519. void empaquetar(FILE **pArchUsuario)   /// Uso un puntero a puntero (doble puntero), para no retornar un
  520. {
  521.     FILE *pArchEliminados; /// puntero desde la funcion (sería la otra manera de hacerlo).
  522.     stUsuario a;
  523.     pArchEliminados = fopen ("usuario.TMP", "wb");
  524.     rewind (*pArchUsuario);
  525.     while (fread (&a, sizeof (stUsuario), 1, *pArchUsuario) > 0)
  526.         if (a.eliminado == 1) /// No uso llaves porque de cada condicion depende una sola linea de codigo
  527.             fwrite (&a, sizeof (stUsuario), 1, pArchEliminados);
  528.     fclose (pArchEliminados);
  529.     fclose (*pArchUsuario); /// Lo cierro para poder trabajar en:
  530.     remove("usuario.BAK"); /// Un poquito de administración de archivos desde consola DOS
  531.     rename("usuario.DAT", "usuario.BAK");
  532.     rename("usuario.TMP", "usuario.DAT");
  533.     *pArchUsuario = fopen ("usuario.DAT", "r+b"); /// y lo abro, pues debo devolver la ejecución con el archivo abierto.
  534. }
  535. void mostrarRegistro()
  536. {
  537.     stUsuario a;
  538.     FILE *parchUsuario = fopen(arUsuario, "rb");
  539.     if(parchUsuario != NULL)
  540.     {
  541.         while(fread(&a, sizeof(stUsuario),1,parchUsuario) > 0)
  542.         {
  543.             mostrarUnUsuario(a);
  544.         }
  545.         fclose(parchUsuario);
  546.     }
  547. }
  548. void mostrarUnUsuario(stUsuario a)
  549. {
  550.     printf("\n Eliminado .............: %d", a.eliminado);
  551.     printf("\n Id ....................: %d",a.idUsuario);
  552.     printf("\n Nombre ................: %s",a.nombreUsuario);
  553.     printf("\n Contrase%ca ............: %s",164, a.pass);
  554.     printf("\n A%co ...................: %d",164, a.anioNacimiento);
  555.     printf("\n Genero ................: %c",a.genero);
  556.     printf("\n Pais ..................: %s",a.pais);
  557.     printf("\n ___________________________ \n");
  558. }
  559. void cargaDeMusica ()
  560. {
  561.     FILE*pArchCancion;
  562.     stCancion b;
  563.     char continuar;
  564.     pArchCancion=fopen("musica.DAT", "ab");
  565.     if(pArchCancion!=NULL)
  566.     {
  567.         puts("---------------------------");
  568.         printf("ingrese nombre del artista:\n");
  569.         fflush(stdin);
  570.         gets(b.artista );
  571.         printf("ingrese titulo de la cancion:\n");
  572.         fflush(stdin);
  573.         gets(b.titulo);
  574.         printf("ingrese la duracion de la cancion:\n");
  575.         scanf("%d", &b.duracion);
  576.         printf("ingrese el genero de la cancion:\n");
  577.         fflush(stdin);
  578.         gets(b.genero);
  579.         printf("ingrese el a%co de la cancion:\n",164);
  580.         scanf("%d", &b.anio);
  581.         printf("ingrese el album de la cancion:\n");
  582.         fflush(stdin);
  583.         gets(b.album);
  584.         printf("ingrese un comentario de la cancion:\n");
  585.         fflush(stdin);
  586.         gets(b.comentario);
  587.         b.idCancion=1;
  588.         puts("---------------------------");
  589.         getch();
  590.     }
  591.     fwrite(&b, sizeof(stCancion),1,pArchCancion);
  592.  
  593.     fclose(pArchCancion);
  594. }
  595. void mostrarCancion (stCancion b)
  596. {
  597.     puts("--------------------------------------");
  598.     printf("\n Nombre del artista: %s", b.artista);
  599.     printf("\n Titulo: %s", b.titulo);
  600.     printf("\n Album: %s", b.album);
  601.     printf("\n Genero: %s",b.genero);
  602.     printf("\n Duracion: %dmin\n",b.duracion);
  603.     printf("\n A%co: %i\n",164, b.anio);
  604.     printf("\n Comentario: %s\n",b.comentario);
  605.     puts("--------------------------------------");
  606. }
  607. void mostrarCanciones()
  608. {
  609.     stCancion b;
  610.     FILE *pArchCancion = fopen("musica.DAT", "rb");
  611.     if(pArchCancion != NULL)
  612.     {
  613.         while(fread(&b, sizeof(stCancion),1,pArchCancion) > 0)
  614.         {
  615.             mostrarCancion(b);
  616.         }
  617.     }
  618.     fclose(pArchCancion);
  619. }
  620.  
  621. int validarUsuarioAdmin (char userAdm [], char contraAdm[])
  622. {
  623.     stUsuario usAdm;
  624.     FILE *pArchUsuario = fopen(arUsuario,"rb");
  625.     int validar = 0;
  626.  
  627.     if (pArchUsuario != NULL)
  628.     {
  629.         fread(&usAdm, sizeof(stUsuario), 1, pArchUsuario);
  630.  
  631.         if(strcmpi(usAdm.nombreUsuario, userAdm)== 0 && (strcmpi(usAdm.pass, contraAdm)== 0))
  632.         {
  633.             validar++;
  634.         }
  635.     }
  636.     return validar;
  637. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top