[ Foro de C ]

duda ficheros binario o texto

31-Oct-2009 00:10
Roberto rrs
3 Respuestas

Hola.
Una duda que me surge a raíz de los ejercicios de la pagina 93 y 96  es que no me funciona el contenido del fichero en los dos programas, o lo tengo que crear nuevo en modo binario o lo tengo que crear nuevo en modo texto.
¿Hay alguna forma de solucionar ese problema (para poder aprovechar los datos metidos en el fichero) o es imposible?
Gracias.


01-Nov-2009 21:37
Nacho Cabanes (+83)

Generalmente, los datos no son "claramente intercambiables" de texto a binario y viceversa:

- No es trivial leer datos de un fichero de texto como fichero binario, porque los datos son de longitud variable y pueden contener basura.

- Generalmente no sera factible leer un fichero binario con órdenes de ficheros de texto.

Por eso, para compartir datos, la forma suele ser añadir a una de las dos versiones del programa (texto o binario) la posibilidad de exportar (o importar) datos en el otro formato.


02-Nov-2009 21:27
Jesús S.

¡Hola!

Efectivamente, cuando abro el fichero de texto en binario sí que me lo lee, pero donde le toque por la longitud del buffer, así que he optado por escribir el fichero en binario, ya que no sé cómo
"añadir a una de las dos versiones del programa (texto o binario) la posibilidad de exportar (o importar) datos en el otro formato."

¿Está en los apuntes o es de un curso más avanzado?

Saludos.


08-Nov-2009 22:15
Nacho Cabanes (+83)

Jesús, con lo de "añadir a una de las dos versiones del programa (texto o binario) la posibilidad de exportar (o importar) datos en el otro formato.", me refiero a que, una vez creadas ambas versiones (cuyos datos no son intercambiables), "copias y pegas" un trozo de una de una versión en la otra.

Por ejemplo, añades una opción a la versión que maneja ficheros de texto para que "exporte a fichero binario", y el contenido de esa opción es básicamente copiar y pegar un fragmento de la versión que maneja ficheros binarios (el trozo encargado de guardar los datos).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)