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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pasar datos de un archivo binario a una lista dinamica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar datos de un archivo binario a una lista dinamica  (Leído 2,501 veces)
ezar147

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Pasar datos de un archivo binario a una lista dinamica
« en: 8 Junio 2017, 20:08 pm »

Tengo un archivo binario y quiero pasar los datos del archivo y registrarlos en una lista dinámica, pero al momento de hacerlo se me crean dos elementos en la lista aparte de los que están en el archivo. Quien me podría ayudar?

este es el código.
Código
  1.  
  2. Clientes *registrar_cliente(){
  3. Clientes *cliente = new Clientes; //se crea el un nuevo cliente.
  4.  
  5. if(P_inicio_cliente == NULL){ //en caso que no exista ningun elemento en la lista.
  6.  
  7. P_fin_cliente = cliente;
  8. P_inicio_cliente = cliente;
  9. cliente->P_ant = NULL;
  10. cliente->P_sig = NULL;
  11. }
  12.  
  13. else{ //si ya existen elementos en la lista.
  14.  
  15. cliente->P_ant = P_fin_cliente;
  16. P_fin_cliente->P_sig = cliente;
  17. cliente->P_sig = NULL;
  18. P_fin_cliente = cliente;
  19. }
  20. return cliente;
  21. }
  22.  
  23. int tomar_datos(){
  24. ifstream clientesIn("clientes.dat",ios::in|ios::binary);
  25. if(!clientesIn){
  26. return -1;
  27. }
  28. else{
  29. Clientes aux; //para tomar los datos del archivo y luego enviarlos a la lista
  30. clientesIn.read((char*)&aux, sizeof(Clientes));
  31. while(!clientesIn.eof()){
  32. *registrar_cliente() = aux;
  33. clientesIn.read((char*)&aux, sizeof(Clientes));
  34. }
  35. clientesIn.close();
  36. }
  37. }
  38.  
  39.  



« Última modificación: 8 Junio 2017, 20:10 pm por ezar147 » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.575



Ver Perfil
Re: Pasar datos de un archivo binario a una lista dinamica
« Respuesta #1 en: 8 Junio 2017, 21:04 pm »

En C++ existen ya las listas. No hace falta que hagas una desde cero.
*registrar_cliente() = aux; es un código muy extraño, deberías hacerlo más intuitivo. Por ejemplo algo así:
Código:
registrar_cliente(aux);
// o
misClientes.registrar(aux);


En línea

ezar147

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Pasar datos de un archivo binario a una lista dinamica
« Respuesta #2 en: 9 Junio 2017, 00:51 am »

El problema es que es un trabajo que tengo que hacerlo con structuras y archivos sin usar librerias para listas
En línea

ezar147

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Pasar datos de un archivo binario a una lista dinamica
« Respuesta #3 en: 10 Junio 2017, 01:07 am »

ya me di cuenta de mi error. Resulta que cuando guardo la información en el archivo también se guardan los datos del los punteros y estos se pasan al nuevo elemento creado. la solución es sencilla pero tuve que pensarlo bien para darme cuenta.

aquí les dejo el condigo con la solución
Código
  1. int tomar_datos(){
  2. ifstream clientesIn("clientes.dat",ios::in|ios::binary);
  3. if(!clientesIn){
  4. return -1;
  5. }
  6. else{
  7. Clientes aux; //para tomar los datos del archivo y luego enviarlos a la lista
  8. clientesIn.read((char*)&aux, sizeof(Clientes));
  9. while(!clientesIn.eof()){
  10.                        aux.P_sig = NULL;
  11.                        aux.P_ant = P_fin_cliente;
  12. *registrar_cliente() = aux;
  13. clientesIn.read((char*)&aux, sizeof(Clientes));
  14. }
  15. clientesIn.close();
  16. }
  17. }
  18.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
error en runtime leyendo datos de un archivo binario c++
Programación C/C++
winroot 2 2,149 Último mensaje 16 Mayo 2010, 01:29 am
por winroot
Insertar datos en Archivo Binario
Programación C/C++
willy1855 7 4,292 Último mensaje 16 Abril 2012, 05:27 am
por durasno
Pasar un archivo texto a binario. (Solucionado) « 1 2 »
Programación C/C++
nolasco281 18 14,354 Último mensaje 26 Marzo 2014, 15:34 pm
por eferion
Guardar Lista Enlazada en Archivo Binario
Programación C/C++
mari2diaz 2 3,038 Último mensaje 4 Abril 2018, 05:42 am
por mari2diaz
Errores al pasar datos de un archivo a una lista
Programación C/C++
palacio29 1 1,238 Último mensaje 23 Junio 2020, 22:01 pm
por ThunderCls
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines