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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16
61  Programación / Programación C/C++ / Re: Fallo en segmentación inexplicable (al menos para mi) en: 17 Julio 2010, 15:33 pm
El fallo de segmentación luego de la muestra se debe a que no reservas el espacio en memoria para el puntero a la estructura, prueba añadiendo:


Código
  1.    cliente = (type_persona*)(malloc(sizeof(type_persona)));
62  Informática / Electrónica / Re: protocolo para controladores en: 16 Julio 2010, 04:19 am
Bien... Veamos si comprendo...

Lo que necesitas es un "Cliente - Servidor", que en electrónica es lo mismo... Para ello se utilizan protocolos de comunicación igual a los de programación  :xD ... Ahora bien, lo único es que necesitas un hardware para establecer los niveles de tensión y este puede ser el MAX232... Generalmente este es el circuito:



Ahora bien, como sabrás TX = Transmisor RX = Receptor...

Luego lo de el envío de señales es a través de bits, y son secuencias de ellos, que en este caso utilizarás seguramente una comunicación asicrónica... No sé sinceramente con que pic trabajas, pero tendrás que ver la forma de enviar y recibir información, ya que hasta lo que sé, no se puede enviar un "paquete/estructura", y ahi es dónde entra el ingenio de como codificar/decodificar a nivel bit  :P

Esto último es una idea, espero no estar errado.

Mucha suerte  :D
63  Informática / Electrónica / Re: protocolo para controladores en: 16 Julio 2010, 04:06 am
Te sirve esto?
64  Programación / Programación C/C++ / Re: [Taller] Signals y Slots en Qt. en: 15 Julio 2010, 04:53 am
Muy bueno... Me quedo a la espera de como compilar  :xD
65  Programación / Programación C/C++ / Re: [C] - Manipulación de archivos binarios en: 14 Julio 2010, 03:01 am
 :-\ Al parecer no copié el source correcto  :o

1- Lo de "año", sinceramente no sé porque aquí se puso "ñ" en ves de "ni"
2- Lo demás es por no haber copiado bien el source correcto :P
66  Informática / Electrónica / Re: Controlar Puerto Paralelo en: 13 Julio 2010, 18:32 pm
Puedes pasarte por aqui
67  Programación / Programación C/C++ / Re: [C] - Manipulación de archivos binarios en: 12 Julio 2010, 23:28 pm
Gracias, que raro, capaz que no busqué bien en mi libro  :-\
68  Programación / Programación C/C++ / [C] - Manipulación de archivos binarios en: 12 Julio 2010, 23:10 pm
Hola, estaba practicando con archivos binarios, y tal vez a alguien le pueda servir este source, me hace falta la actualización de datos, pero no es algo difícil.

Ahora bien, lo que no sé si es correcto, es la forma en que yo borro al archivo  :-\ ya que tengo que hacer una llamada al sistema.

Código
  1. /** Programa para manipular estructuras
  2. junto con archivos tipo binarios.
  3. El menu contiene un AB para el arc
  4. hivo no indexado.
  5. **/
  6. /* Autor: cbug
  7.         Fecha: 11 de Julio de 2010
  8. */
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <string.h>
  12. /** DEFINICION DE TIPOS DE DATOS **/
  13. typedef struct Fecha{
  14. int dia;
  15. int mes;
  16. int año;
  17. }stFecha;
  18.  
  19. typedef struct Persona{
  20. char Nombre[25];
  21. stFecha Nacimiento;
  22. }stPersona;
  23.  
  24. /**********************************/
  25.  
  26. /** PROTOTIPOS DE FUNCIONES **/
  27. void Ingreso(stPersona *P);
  28. void Muestra(stPersona);
  29.  
  30. void Archivo_Escribe(stPersona *P);
  31. long Archivo_Busca_Persona(char *nombre);
  32. void Archivo_Elimina(void);
  33. void Archivo_Muestra(void);
  34. void Archivo_Borrar(void);
  35.  
  36. stPersona Persona_Blanco(void);
  37.  
  38. void Menu(void);
  39. void ClrBuffer(void);
  40. /*****************************/
  41.  
  42. int main(void)
  43. {
  44. //Variables Locales
  45. int _opt;
  46. stPersona _persona;
  47. Menu();
  48. printf("Ingrese opcion>");
  49. scanf("%d", &_opt);
  50. ClrBuffer();
  51. while(_opt != 0)
  52. {
  53. switch(_opt)
  54. {
  55. case 1:
  56. Ingreso(&_persona);
  57. break;
  58. case 2:
  59. Muestra(_persona);
  60. break;
  61. case 3:
  62. Archivo_Escribe(&_persona);
  63. break;
  64. case 4:
  65. Archivo_Muestra();
  66. break;
  67. case 5:
  68. Archivo_Elimina();
  69. break;
  70. case 6:
  71. Archivo_Borrar();
  72. break;
  73. default:
  74. break;
  75. }
  76. Menu();
  77. printf("\nIngrese opcion>");
  78. scanf("%d", &_opt);
  79. ClrBuffer();
  80. }
  81. return 0;
  82. }
  83.  
  84. void ClrBuffer(void)
  85. {
  86. while(getchar() != '\n');
  87. }
  88.  
  89. void Menu(void)
  90. {
  91. puts("************MENU************");
  92. puts("1 - Ingreso de datos persona");
  93. puts("2 - Muestra de datos persona");
  94. puts("3 - Escribir en personas.dat");
  95. puts("4 - Mostrar arc personas.dat");
  96. puts("5 - Eliminar en personas.dat");
  97. puts("6 - Borrar a pf personas.dat");
  98. puts("0 - Salir");
  99. puts("****************************");
  100. }
  101.  
  102. void Ingreso(stPersona *P)
  103. {
  104. puts("\n\tIngreso de informacion");
  105. printf("Ingrese nombre>");
  106. fgets(P->Nombre, sizeof(char) * 25, stdin);
  107. puts("\t Ingreso Fecha Nacimiento");
  108. printf("Ingrese dia>");
  109. scanf("%d", &P->Nacimiento.dia);
  110. ClrBuffer();
  111. printf("Ingrese mes>");
  112. scanf("%d", &P->Nacimiento.mes);
  113. ClrBuffer();
  114. printf("Ingrese año>");
  115. scanf("%d", &P->Nacimiento.año);
  116. ClrBuffer();
  117. puts("\n\t FINALIZADO EL INGRESO");
  118. }
  119.  
  120. void Muestra(stPersona P)
  121. {
  122. printf("\nNombre: %s\n", P.Nombre);
  123. printf("\nFecha Nacimiento: %d/%d/%d\n", P.Nacimiento.dia, P.Nacimiento.mes, P.Nacimiento.año);
  124. }
  125.  
  126. stPersona Persona_Blanco(void)
  127. {
  128. stPersona aux;
  129. strcpy(aux.Nombre, " ");
  130. aux.Nacimiento.dia = 0;
  131. aux.Nacimiento.mes = 0;
  132. aux.Nacimiento.año = 0;
  133.        return aux;
  134. }
  135.  
  136. void Archivo_Escribe(stPersona *P)
  137. {
  138. FILE *pf;
  139. pf = fopen("personas.dat", "ab"); // Abre un archivo para agregar personas
  140. if(pf == NULL)
  141. pf = fopen("personas.dat", "wb"); // Si no existe creamos uno nuevo
  142. fwrite(P, sizeof(stPersona), 1, pf);
  143. fclose(pf);
  144. }
  145.  
  146. void Archivo_Muestra(void)
  147. {
  148. FILE *pf;
  149. stPersona *_pbuffer = NULL;
  150. pf = fopen("personas.dat", "rb");
  151. if(pf == NULL)
  152. puts("Error al intentar abrir el archivo personas.dat");
  153. else
  154. {
  155. while(!feof(pf))
  156. {
  157. _pbuffer = (stPersona *)(malloc(sizeof(stPersona)));
  158. fread(_pbuffer, sizeof(stPersona), 1, pf);
  159. if(_pbuffer)
  160. Muestra(*_pbuffer);
  161. }
  162. free(_pbuffer);// Se debe liberar el ultimo bloque leido
  163. fclose(pf);
  164. }
  165. }
  166.  
  167. long Archivo_Busca_Persona(char *nombre)
  168. {
  169. FILE *pf;
  170. stPersona *_pbuffer = NULL;
  171. int counter = 0;
  172. pf = fopen("personas.dat", "rb");
  173. if(pf == NULL)
  174. puts("Error al intentar abrir el archivo personas.dat");
  175. else
  176. {
  177. while(!feof(pf))
  178. {
  179. _pbuffer = (stPersona *)(malloc(sizeof(stPersona)));
  180. fread(_pbuffer, sizeof(stPersona), 1, pf);
  181. if(strcmp(_pbuffer->Nombre, nombre) == 0)
  182. return counter;
  183. counter++;
  184. }
  185. free(_pbuffer);
  186. fclose(pf);
  187. return -1;
  188. }
  189. }
  190.  
  191.  
  192. void Archivo_Elimina(void)
  193. {
  194. char Nombre[25];
  195. long Pos;
  196. stPersona P;
  197. FILE *pf;
  198. printf("\nIngrese Nombre de Persona>");
  199. fgets(Nombre, sizeof(char) * 25, stdin);
  200. Pos = Archivo_Busca_Persona(Nombre);
  201. if(Pos > -1)
  202. {
  203. pf = fopen("personas.dat", "wb");
  204. fseek(pf, Pos * sizeof(stPersona), 0);
  205. P = Persona_Blanco();
  206. fwrite(&P, sizeof(stPersona), 1, pf);
  207. fclose(pf);
  208. }
  209. else
  210. puts("No se encuentra");
  211. }
  212.  
  213. void Archivo_Borrar(void)
  214. {
  215. system("rm personas.dat");
  216. }
69  Programación / Programación C/C++ / Re: [C] ? problema con la estructura FOR en: 12 Julio 2010, 06:07 am
Que raro, sinceramente no puedo probarlo ya que no estoy en windows... Probaste agregando un delay entre las apertura de páginas?
70  Informática / Electrónica / Re: ayuda en: 12 Julio 2010, 02:55 am
No, no hago tareas, sólo indico un camino. Si tienes ánimos de aprender, lee, sino déjalo a todo, y así te ira en la vida.
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines