• Domingo 19 de Mayo de 2024, 23:27

Autor Tema:  Manejo De Archivos Binarios En Linux  (Leído 1454 veces)

hisoka

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Manejo De Archivos Binarios En Linux
« en: Martes 21 de Septiembre de 2004, 22:06 »
0
buenas, ahorita esoty haciendo un programa que trabaje con archivos binarios(agregar, modifciar, consultar y eliminar), mi duda es si el archivo binario que estoy creando esta bien, ya que cuando lo abro con un editor en este puedo visualizar la informacion y nose si deberia de poder verla..

Estoy usando para accesar al archivo fopen, y le paso wb o ab a los modos, para que este sea binario, tambien cuando lo creo....

Y para ver la informacion e introducir informacion estoy usando fscanf y fprintf, espero que alguien me ayude...

Gracias de antemano

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Manejo De Archivos Binarios En Linux
« Respuesta #1 en: Miércoles 22 de Septiembre de 2004, 14:41 »
0
La información puede verse o no dependiendo de qué sea.
Las cadenas de texto si deben verse.
Los numeros no deberían verse.

fprintf() y fscanf() son para ficheros de texto. Si escribes con fprint(), saldrá como fichero de texto. Usa en su lugar funciones como fwrite() o write() y fread() o read() (dependiendo si abres el fichero con fopen() o open())

Se bueno.

hisoka

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Manejo De Archivos Binarios En Linux
« Respuesta #2 en: Miércoles 22 de Septiembre de 2004, 22:27 »
0
ok, gracias...

pero hoy tengo otro problema, ya logro agregar y visualizar los registros, pero cuando quiero modificar los datos, los nuevos datos se me van al final del archivo y no entiendo porque...

hasta el momento he tratado con "a+b","w+b" y "wb" para escribir en el archivo y uso rewind despues del fopen para que este al principio del archivo y despues hago un fseek para encontrar el dato que quiero modificar, pero este siempre se me guarda al final y no logra modificar el dato que quiero...

Como comentario extra los datos que estoy guardando en el archivo son estructuras...

espero que alguien me ayude a entender porque no me sale....

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Manejo De Archivos Binarios En Linux
« Respuesta #3 en: Viernes 24 de Septiembre de 2004, 02:26 »
0
Hola!!!!!!!!

Si vos queres por ejemplo borrar un registro, lo q haces es crear otro archivo copiando en este ultimo lo q queres del original. Despues borras el original y renombras el nuevo con el del original. Como sabras, vos no podes borrar asi como asi. Los datos no se pueden borrar. Si esto te parece q lo vas a hacer muchas veces quizas te convendria marcarlo como borrado y cada un cierto tiempo, o ante accion del usuario, "defragmentar".
Ahora para modificar, si vos levantas un registro del archivo a memoria (no importa si el registro en un strcut, una clase, un int o lo q sea), lo modificas en memoria y lo pones en el archivo en la misma posicion de donde lo obtuviste pisando lo q te quedo abajo. Tene cuidado ya q si manejas registros de longiyud variable vas a estar haciendo mocos por todos lados. Si son de longitud fisja, no deberias tener problemas.

Salu2!!!!