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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cargar archivo binario(No lee los caracteres de la cadena)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cargar archivo binario(No lee los caracteres de la cadena)  (Leído 1,534 veces)
arturo2507

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Cargar archivo binario(No lee los caracteres de la cadena)
« en: 23 Noviembre 2018, 21:52 pm »

"UTILIZO LENGUAJE VISUAL STUDIOS 2017 C++". Holo muy buenas, aquí traigo un código en el cual se basa en cargar los elementos agregados a un archivo binario y esta siendo trabajado en un proyecto de winapi,en este archivo se guardan todos los datos de una estructura llamada Contacto y EL ERROR ORCURRE cuando se empiezan a cargar los datos del contacto y me detiene justo en el punto donde marque en el código y me dice que no se pueden leer los caracteres de la cadena, otro dato que puedo ofrecerles sobre el error es que al parecer el programa me sigue introduciendo datos "basura", bueno realmente me deja como espacios vacíos en cada dato y los toma como si fueran algún otro elemento de mi lista aquí también dejare el código que uso para guardar los datos del contacto, espero y puedan ofrecerme su ayuda, gracias.

Código
  1. void GuardarContacto(HWND hDlg) {
  2.  
  3. aux = origen;
  4. ofstream Archivo;
  5.  
  6. Archivo.open(
  7. "C:\\Users\\artur\\OneDrive\\Documentos\\Visual Studio 2017\\Projects\\Proyecto Final Programacion 2\\Proyecto Final Programacion 2\\MisContactos.bin",
  8. ios::trunc | ios::out | ios::binary);
  9.  
  10. if (Archivo.is_open()) {
  11.  
  12. while (aux != NULL) {
  13. Archivo.write(reinterpret_cast<char *>(aux), sizeof(Contacto));
  14. aux = aux->sig;
  15. }
  16. Archivo.close();
  17. return;
  18. }
  19. else {
  20. MessageBox(hDlg, "No se pudo abrir el archivo", "ERROR", MB_ICONERROR | MB_OK);
  21. }
  22. return;
  23. }
  24.  
  25. void CargarContacto(HWND hDlg) {
  26.  
  27. aux = origen;
  28. ifstream Archivo;
  29.  
  30. Archivo.open(
  31. "C:\\Users\\artur\\OneDrive\\Documentos\\Visual Studio 2017\\Projects\\Proyecto Final Programacion 2\\Proyecto Final Programacion 2\\MisContactos.bin",
  32. ios::binary | ios::in);
  33.  
  34.  if (Archivo.is_open()) {
  35. while (!Archivo.eof()) {
  36. if (origen == NULL) {
  37. origen = new Contacto;
  38. Contacto *temp = new Contacto;
  39. Archivo.read(reinterpret_cast<char*>(temp), sizeof(Contacto));
  40. origen->Nombre = temp->Nombre;
  41. origen->Apellido = temp->Apellido;
  42. origen->Calle = temp->Calle;
  43. origen->EntreCalles = temp->EntreCalles;
  44. origen->Correo = temp->Correo;
  45. origen->Colonia = temp->Colonia;
  46. origen->Municipio = temp->Municipio;
  47. origen->Estado = temp->Estado;
  48. origen->Pais = temp->Pais;
  49. origen->NumTelefono = temp->NumTelefono;
  50. origen->NumCP = temp->NumCP;
  51. strcpy(origen->Foto1, temp->Foto1);
  52. strcpy(origen->Foto2, temp->Foto2);
  53. origen->ant = NULL;
  54. origen->sig = NULL;
  55. delete reinterpret_cast<char*>(temp);
  56. continue;
  57. }
  58. aux = origen;
  59. while (aux->sig != NULL)
  60. aux = aux->sig;
  61. aux->sig = new Contacto;
  62. Contacto *temp = new Contacto;
  63. Archivo.read(reinterpret_cast<char*>(temp), sizeof(Contacto));
  64. aux->sig->ant = aux;
  65. aux->sig->sig = NULL;
  66. aux = aux->sig;
  67. aux->Nombre = temp->Nombre;
  68. aux->Apellido = temp->Apellido;
  69. aux->Calle = temp->Calle;
  70. aux->EntreCalles = temp->EntreCalles;
  71. aux->Correo = temp->Correo;
  72. aux->Colonia = temp->Colonia;
  73. aux->Municipio = temp->Municipio;
  74. aux->Estado = temp->Estado;
  75. aux->Pais = temp->Pais;
  76. aux->NumTelefono = temp->NumTelefono;
  77. aux->NumCP = temp->NumCP;
  78. strcpy(aux->Foto1, temp->Foto1);
  79. strcpy(aux->Foto2, temp->Foto2);
  80. delete reinterpret_cast<char*>(temp);
  81. //Justo en delete reinterpret_cast<char*>(temp); ocurre el error por lo que les mencione antes.
  82. }
  83. Archivo.close();
  84. return;
  85. }
  86.    //MessageBox(hDlg, "No pueden cargarse los contactos", "ERROR", MB_ICONERROR | MB_OK);
  87. return;
  88. }


« Última modificación: 23 Noviembre 2018, 22:20 pm por arturo2507 » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Cargar archivo binario(No lee los caracteres de la cadena)
« Respuesta #1 en: 24 Noviembre 2018, 00:28 am »

No te deja hacer el delete directamente?

Código:
delete(temp);

Y como comentario no existe tal cosa como LENGUAJE VISUAL STUDIOS 2017 C++.
Es C o C++.
Ya aparte mencionar el IDE en este caso se entiende que es Visual Studio.

Saludos!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Agregar mas carácteres de los declarados en un binario
Ingeniería Inversa
WHK 5 3,593 Último mensaje 8 Mayo 2009, 12:01 pm
por Eternal Idol
cadena de caracteres
Programación C/C++
Ander123 1 2,587 Último mensaje 6 Septiembre 2012, 14:15 pm
por avesudra
Volcar cadena de fichero binario en C
Programación C/C++
mester 9 3,701 Último mensaje 27 Mayo 2015, 23:22 pm
por Peregring-lk
cadena de caracteres
Programación C/C++
brayan 5 2,843 Último mensaje 27 Abril 2017, 18:41 pm
por Fedex15
Cadena de caracteres en C
Programación C/C++
Jurott1 8 3,344 Último mensaje 2 Mayo 2017, 01:33 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines