elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 37
31  Programación / Programación C/C++ / Re: Plantilla para trabajar con archivos en lenguaje C. en: 26 Abril 2017, 03:30 am
Hola, ¿cómo están?
Gracias MAFUS por el código y gracias por el consejo, estaba cometiendo un error de primer grado, lo voy a tener muy en cuenta de aquí en más. --
La ayudita que les pido ahora es la siguiente, alguien me podría decir como hacer para que falle fflush,
(línea 43) para saber el comportamiento total del programa necesito que esto ocurra, intente abrir el archivo archGuiaTel.txt (línea 36) para lectura pero no me ocasiona un error, simplemente no escribe la frase, pero el programa termina normalmente. -   
Es todo y espero puedan darme la respuesta. -

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX 80
  6.  
  7. void ingresarFrase( char frase[] );
  8. void copiar( char frase[] );
  9. void errorEscritura( void );
  10. void copiaDeSeguridad( const char *GtTxt, const char *GtBak );
  11. void mensaje( void );
  12.  
  13. int main( void ){
  14. char frase[MAX];
  15.  
  16. ingresarFrase( frase );
  17. copiar( frase );
  18. copiaDeSeguridad( "archGuiaTel.txt","archGuiaTel.bak" );
  19.  
  20. return EXIT_SUCCESS;
  21. }
  22.  
  23. void ingresarFrase( char frase[] ){
  24. int ok=0;
  25.  
  26. do{
  27. printf( "\n Ingrese frase.....:" );
  28. fgets( frase, MAX, stdin );
  29. ok = strlen( frase );
  30. }while( ok <= 1 );
  31. }
  32.  
  33. void copiar( char frase[] ){
  34. FILE *ptrGtTxt;
  35.  
  36. if( !(ptrGtTxt = fopen( "archGuiaTel.txt", "a" ))){
  37. mensaje();
  38. exit(1);
  39.    }
  40.  
  41. fprintf( ptrGtTxt, "%s", frase );
  42.  
  43. if( fflush( ptrGtTxt ) != 0){
  44. mensaje();
  45. fclose( ptrGtTxt );
  46. errorEscritura( );
  47. exit(1);
  48. }
  49.  
  50. if( ( fclose( ptrGtTxt ) ) ){
  51. mensaje();
  52. exit(1);
  53. }
  54. }
  55.  
  56. void errorEscritura( void ){
  57. if(remove( "archGuiaTel.txt" ) !=0 ){
  58. mensaje();
  59. exit(1);
  60. }
  61.  
  62. if( rename( "archGuiaTel.bak","archGuiaTel.txt") !=0 ){
  63. mensaje();
  64. exit(1);
  65. }
  66. }
  67.  
  68. void copiaDeSeguridad( const char *GtTxt, const char *GtBak ){
  69. FILE *ptrGtTxt, *ptrGtBak;  
  70. char c, x;
  71.  
  72. if( !( ptrGtTxt = fopen( GtTxt, "a" ))){
  73. mensaje();
  74. exit(1);                                
  75. }
  76. if( !( ptrGtBak = fopen( GtBak, "w" ))){
  77. mensaje();
  78. exit(1);                                
  79. }
  80.  
  81. c = fgetc( ptrGtTxt );
  82. while ( c != EOF ){
  83. x = fputc( c, ptrGtBak );
  84. if (x != c){
  85. mensaje();
  86. exit(1);                                
  87. }
  88. c = fgetc( ptrGtTxt );
  89. }
  90.  
  91. if( ( fclose( ptrGtTxt ) ) ){
  92. mensaje();
  93. exit(1);                                
  94. }
  95. if( ( fclose( ptrGtBak ) ) ){
  96. mensaje();
  97. exit(1);                                
  98. }
  99. }
  100.  
  101. void mensaje( void ){
  102. int ch, a;
  103.  
  104. printf( "\n Ha ocurrido un error y el programa finaliza sin cambios en el archivo." );
  105. printf( "\n Pulse una tecla para continuar..."); a = getchar();
  106.    if( a != '\n') while ((ch = getchar()) != EOF && ch != '\n');
  107. }

saludos.
 
32  Programación / Programación C/C++ / Re: Plantilla para trabajar con archivos en lenguaje C. en: 12 Abril 2017, 02:29 am
Hola.
No logro que me caiga la ficha del todo con lo que propones, te pediría tan solo unos minutos para que me hagas una pequeña función diciéndome lo que hago mal y como seria la forma correcta de hacerlo. -

Gracias MAFUS.
Un gran saludo.
33  Programación / Programación C/C++ / Plantilla para trabajar con archivos en lenguaje C. en: 11 Abril 2017, 18:41 pm
Hola, gente ¿cómo están?
Lo que me trae en este caso no es para pedir ayuda porque el programa no funciona, lo que quisiera es que me digan que debería cambiar, que les parece, ¿está bien encarado?, estoy consiente que esto se lo debería preguntar a un profe o a un amigo, pero como ya algunos conocen por mi edad (65) no tengo ni una cosa ni la otra,-
Es todo, espero que alguien con mucho tiempo lo revice, no tengo ningún apuro. -   

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX 80
  6.  
  7. void copiaDeSeguridad( FILE *ptrGuiaTel, FILE *ptrGtTemp ); //GT0001
  8. void ingresarFrase( char frase[] ); //GT0002
  9. void copiar( FILE *ptrGuiaTel, FILE *ptrGtTemp, char frase[] ); //GT0003
  10. void errorEscritura( FILE *ptrGuiaTel, FILE *ptrGtTemp ); //GT0004
  11. void mensaje( void );
  12.  
  13.  
  14. int main( int argc,char **argv ){
  15. FILE *ptrGuiaTel = NULL, *ptrGtTemp = NULL;
  16. char frase[MAX];
  17.  
  18. copiaDeSeguridad( ptrGuiaTel, ptrGtTemp ); //GT0001
  19. ingresarFrase( frase ); //GT0002
  20. copiar( ptrGuiaTel, ptrGtTemp, frase ); //GT0003
  21.  
  22. return EXIT_SUCCESS;
  23. }
  24.  
  25.  
  26. void copiaDeSeguridad( FILE *ptrGuiaTel, FILE *ptrGtTemp ){ //GT0001
  27. char c, x;
  28.  
  29. if( !( ptrGuiaTel = fopen( "archGuiaTel.txt", "r" ))){
  30. mensaje();
  31. exit(1);
  32. }
  33. if( !( ptrGtTemp = fopen( "archGtTemp.txt", "w" ))){
  34. mensaje();
  35. exit(1);
  36. }
  37.  
  38. c = fgetc( ptrGuiaTel );
  39. while ( c != EOF ){
  40. x = fputc( c, ptrGtTemp );
  41. if (x != c){
  42. mensaje();
  43. exit(1);
  44. }
  45. c = fgetc( ptrGuiaTel );
  46. }
  47.  
  48. if( ( fclose( ptrGuiaTel ) ) ){
  49. mensaje();
  50. exit(1);
  51. }
  52. if( ( fclose( ptrGtTemp ) ) ){
  53. mensaje();
  54. exit(1);
  55. }
  56. }
  57.  
  58. void ingresarFrase( char frase[] ){ //GT0002
  59. int ok=0;
  60.  
  61. do{
  62. printf( "\n Ingrese frase.....:" );
  63. fgets( frase, MAX, stdin );
  64. ok = strlen( frase );
  65. }while( ok <= 1 );
  66. }
  67.  
  68. void copiar( FILE *ptrGuiaTel, FILE *ptrGtTemp, char frase[] ){ //GT0003
  69.  
  70. if( !(ptrGuiaTel = fopen( "archGuiaTel.txt", "a" ))){
  71. mensaje();
  72. exit(1);
  73. }
  74.  
  75. fprintf( ptrGuiaTel, "%s", frase );
  76.  
  77. if( fflush( ptrGuiaTel ) != 0){
  78. mensaje();
  79. fclose( ptrGuiaTel );
  80. errorEscritura( ptrGuiaTel, ptrGtTemp ); //GT0004
  81. exit(1);
  82. }
  83.  
  84. if( ( fclose( ptrGuiaTel ) ) ){
  85. mensaje();
  86. exit(1);
  87. }
  88. }
  89.  
  90. void errorEscritura( FILE *ptrGuiaTel, FILE *ptrGtTemp ){ //GT0004
  91.  
  92. if( rename("archGtTemp.txt","archGuiaTel.txt") !=0 ){
  93. mensaje();
  94. exit(1);
  95. }
  96.  
  97. if(remove( "archGuiaTel.txt") !=0 ){
  98. mensaje();
  99. exit(1);
  100. }
  101. }
  102.  
  103. void mensaje( void ){
  104. int ch, a;
  105.  
  106. printf( "\n Ha ocurrido un error y el programa finaliza sin cambios en el archivo." );
  107. printf( "\n Pulse una tecla para continuar..."); a = getchar();
  108. if( a != '\n') while ((ch = getchar()) != EOF && ch != '\n');
  109. }
  110.  
  111. /*
  112. GT0001 - Funcion copiaDeSeguridad
  113. Efectuo una copia del archivo original por si fallara la escritura en el mismo, si esto
  114. ocurriera renombro la copia con el mismo nombre que el archivo original y a este lo borro,
  115. con esto me aseguro que el archivo en disco no quede corrupto. -
  116. Si fallara la apertura de los archivos archGuiaTel.txt o archGtTemp.txt imprimo un mensaje
  117. y cierro el programa (mensaje y exit(1)), lo mismo ocurrira si falla la escritura en el archivo temporal (if (x != c){).-
  118. Si la apertura de los 2 archivos es correcta como asi la escritura, solo queda constatar si
  119. el cierre de los mismos ocurre sin errores, de lo contrario se procedera de la misma manera que en la apertura de los mismos (mensaje y exit (1). -
  120. Nota: En esta funcion se abre y se cierra el archivo "archGtTemp.txt".
  121. //GT0002 - Funcion ingresarFrase  
  122. El do-while es para que no se pueda salir de la funcion si no se ha ingresado por lo menos
  123. un dígito.-
  124. //GT0003 - Funcion copiar
  125. Con fprintf( ptrGuiaTel, "%s", frase ); copio la frase en el buffer intermedio y con fflush
  126. copio la frase desde el buffer al disco rigido(archGuiaTel.txt).-
  127. Verifico si la apertura y cierre del archivo ocurre sin errores.-
  128. En el caso de que fallara fflush llamo a la (//GT0004) funcion errorEscritura para renombrar el archivo archGtTemp.txt por archGuiaTel.txt para luego borrar el
  129.                 archivo original que seguramente si no se pudo escribir es porque está corrupto(al final con remove lo borro). -
  130. */

Saludos.
34  Programación / Programación C/C++ / Re: quien me ayuda con este problema de c en: 2 Abril 2017, 23:15 pm
Hola, un saludo para todos.
Estoy de acuerdo con matrix1566, (no con ese calificativo) porque cierta gente es reticente en mostrar códigos, por supuesto que no es obligación hacerlo, pero hay momentos que hay códigos que con 30 líneas son suficientes para que funcionen, porque no mostrarlos si para un experto es cuestión de unos minutos realisarlo, después están aquellos (esto si lo califico de ridículo) que argumentan que de esa manera no se aprende yo digo entreguemos con libertad los códigos luego el que lo recibe que se haga cargo en discernir si de esa manera aprende o si lo hace un vago, en todo caso no hay en este foro y en toda la web millones de programas finales efectuados sin ningún prejuicio. -
Que bello es vivir sin prejuicios. -

Saludos.       
35  Programación / Programación C/C++ / Re: Duda al cerrar un archivo que fclose no pudo cerrar. - en: 1 Marzo 2017, 20:11 pm
Hola, AnthonyS.
Muchas gracias por ocuparte del tema, creo que no entendiste bien mis inquietudes. -
¿A cuál de estas 3 preguntas respondes con tu post?
Citar
hay alguna manera de informar el error con detalle?, ¿se debe intentar una segunda vez?, ¿que puedo hacer como programador para ayudar a solucionar el problema?. -

Gracias nuevamente. -
Daniel
36  Programación / Programación C/C++ / Duda al cerrar un archivo que fclose no pudo cerrar. - en: 1 Marzo 2017, 17:02 pm
Hola, gente, que tengan un muy buen día. -
La duda es que se debe hacer cuando la función fclose intenta cerrar un archivo y no lo logra, ¿hay alguna manera de informar el error con detalle?, ¿se debe intentar una segunda vez?, ¿que puedo hacer como programador para ayudar a solucionar el problema?. -
 
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc,char **argv){
  5. char frase[] = "arequito, centro soguero del pais";
  6. FILE *ptrFrase = NULL;
  7.  
  8. if(!(ptrFrase = fopen("frase.txt", "w"))){
  9. printf( "\n Error al abrir %s Para escribir. Finaliza el programa.", frase );
  10. exit(1);
  11. }
  12.  
  13. fprintf(ptrFrase, "%s", frase);
  14.  
  15. if( fclose( ptrFrase )!=0){
  16. printf( "\n No se ha podido cerrar el fichero %s.", frase );
  17. }
  18.  
  19. return EXIT_SUCCESS;
  20. }
  21. //https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos#fprintf
  22.  
Es todo por el momento, espero que se entienda cuál es mi desconocimiento. -
Saludos.
37  Programación / Programación C/C++ / Re: system cls o clear en: 15 Febrero 2017, 20:06 pm
Proba con esto ¿a ver si te funciona?

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. void borrar( void );
  5.  
  6. int main( void ){
  7. char a[] = "La casa de Bernarda Alba", *b = &a[10];
  8.  
  9. printf( "\n Programa que muestra como borrar terminal tanto en Linux como Windows.\n\n"
  10. " Presione <Enter> para continuar...." );
  11. borrar();
  12. printf("\n %s\n", b);
  13.  
  14. return 0;
  15. }
  16.  
  17. void borrar( void ){
  18. system("cls||clear");
  19. }
Saludos.
38  Sistemas Operativos / Windows / Re: Ningun dispositivo de salida de audio instalado Windows 10. en: 15 Febrero 2017, 19:59 pm
39  Sistemas Operativos / Windows / Re: Ningun dispositivo de salida de audio instalado Windows 10. en: 15 Febrero 2017, 16:13 pm
Gracia Randomize, sos un genio porque no buscar por fuera del sistema operativo, me pongo a consultar de inmediato, en el post anterior no hice referencia a tu pregunta por qué no la entendía. -

CX 2 en 1 8.9" CX9108W

Saludos.
40  Sistemas Operativos / Windows / Re: Ningun dispositivo de salida de audio instalado Windows 10. en: 15 Febrero 2017, 14:48 pm
Hola, saludos a todos.
Paso a contarles lo que me ocurrió, el video que propone El_Andaluz es el primero luego hay otro del mismo autor, hice paso a paso lo que este propone con la salvedad que en un momento sugiere que no instale todo lo que muestra el programa pero danielito como siempre un poco arrevatado y por no encontrar el botón que indicaba como hacerlo de forma manual le di a que instale todo y o sorpresa el sistema operativo no arrancó más , en un momento me sugería algo como reinstalar el mismo lo acepte y ahora todo funciona salvo que sigo sin tener audio. Tendré que enviarla al service, parece no haber otra solución, salvo que Uds. me indiquen otra sugerencia. -

Saludos.
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines