Pasar un archivo texto a binario. (Solucionado)

Iniciado por nolasco281, 25 Marzo 2014, 07:20 AM

0 Miembros y 1 Visitante están viendo este tema.

nolasco281

Hola gracias por contestar si lo mismo pienso que no es tan facil como se ve.

Dejame pruebo y analiso tu que me compartiste para entenderle mejor y comento como me fue.

saludos y gracias. por ayudarme, a los dos.
Lo que se puede imaginar... se puede programar.

amchacon

#11
Código (cpp) [Seleccionar]
lecturaBin.write(reinterpret_cast<char *>(&registro), sizeof(Cliente));

Hay que diferenciar entre array de char y strings. Mis códigos partían de que eran char*.

Hazlo miembro a miembro, cuando llegues al string haces el << y insertas además el caracter nulo (o un espacio). Ese caracter sirve para que en la lectura se sepa cuando termina el string

Al leerlo igual con la función read miembro a miembro, para el string usas el >> y haces un ignore() (para descartar el caracter nulo que pusistes antes).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

eferion

Efectivamente, no puedes meter una clase literalmente en el código. La razón es que las clases pueden tener más cosas aparte de los miembros ( por ejemplo información RTTI relativa a la herencia de las clases ).

En C estas cosas no pasan porque no existe la herencia, pero en C++...

Así que lo dicho, copia miembro a miembro y no deberías tener problemas.

nolasco281

probando y comento luego aunque es algo confuso para mi.

saludos y gracias.
Lo que se puede imaginar... se puede programar.

eferion

Código (cpp) [Seleccionar]

// teniendo ...
registro.setIdCuenta(idCliente);
registro.setNombre(nombre);
registro.setApellido(apellido);
registro.setIngreso(ingreso);

// la escritura quedaria ...
binary_write( escrituraBin, registro.getIdCuenta( ) );
binary_write( escrituraBin, registro.getNombre( ) );
binary_write( escrituraBin, registro.getApellido( ) );
binary_write( escrituraBin, registro.getIngreso( ) );


Y lo mismo para la lectura

nolasco281

Despues de tanto me salio como momentas eferion lamentablemente no puedo poner una image ya que no me deja entrar a mi cuenta. saludos y gracias a todos por su ayuda y su tiempo. muchas gracias de verdad.
Lo que se puede imaginar... se puede programar.

Yoel Alejandro

Mmmm, ¿"binary_write"? ¿No es lo mismo que:

fwrite( &campo, sizeof(tipo_del_dato_en_el_campo), 1, fPtr );

?
Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)

amchacon

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

eferion

Cita de: amchacon en 26 Marzo 2014, 15:32 PM
En efecto, pero eso es en C.

Exacto. No puedes pretender crear un fichero con ofstream y escribir su contenido con fwrite.