Autor Tema: Es posible leer/escribir en fichero binario: byte=1byte, word=2byte??  (Leído 307 veces)

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

Desconectado alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
  • Sexo: Femenino
    • Ver Perfil
Hola buenas,

desconozco si existe alguna manera de poder leer/escribir un fichero binario con fopen
y fread/fwrite si existe la manera de leer/escribir variables de tipo byte,word.

por ahora solo he podido escribir de tipo INT = 4 bytes.

Es posible escribir 1,2 bytes?

es decir para leer una variable de tipo byte(1byte), o leer una variable de tipo word(2bytes).

En div2 me suena el unit_size.

leeo la ayuda: http://wiki.bennugd.org/index.php?title=Fread

y no me queda claro si se puede o no... veo que existe 2 maneras...
« última modificación: Diciembre 16, 2016, 08:05:51 am por alicesimu »

Desconectado DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 180
  • Sexo: Masculino
    • Ver Perfil
Re:Es posible leer/escribir en fichero binario: byte=1byte, word=2byte??
« Respuesta #1 en: Diciembre 16, 2016, 08:51:15 am »
siempre puedes usar la función genérica y especificar el tamaño de bytes a leer.


INT
fread ( <VOID POINTER data_pos> , <INT length> , <INT filehandle> )
Código: [Seleccionar]
local
 int handle; 
byte unbyte;
byte dosbytes[2];
begin
    handle=fopen(loadpath,O_READ); fread(&unbyte,1,handle); fread(dosbytes,2,handle); fclose(handle);
end




o bien usar los tipos

Código: [Seleccionar]
local
 int handle; 
byte unbyte;
word dosbytes;
begin
    handle=fopen(loadpath,O_READ); fread(handle, &unbyte); fread(handle, &dosbytes); fclose(handle);
end

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Desconectado alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
  • Sexo: Femenino
    • Ver Perfil
Re:Es posible leer/escribir en fichero binario: byte=1byte, word=2byte??
« Respuesta #2 en: Diciembre 16, 2016, 12:32:32 pm »
Genial!!! graciaas!! es mas sencilo de lo que me parecia

Desconectado Drumpi

  • Hero Member
  • *****
  • Mensajes: 6094
  • Karma: 156
  • Sexo: Masculino
  • Odio el periodo "entre proyectos"
    • Ver Perfil
    • La web de Drumpi
Re:Es posible leer/escribir en fichero binario: byte=1byte, word=2byte??
« Respuesta #3 en: Diciembre 17, 2016, 08:16:03 am »
¿Pero el FREAD con el tamaño de datos no se había eliminado?

De todas formas, FREAD y FWRITE, usando la variable, no sólo te permite guardar un BYTE o un WORD, si creas tu propio TYPE también puedes usarlo de forma transparente (aunque no se debe si dicho tipo definido contiene punteros o STRINGS).
Es similar a lo que hacen las funciones SAVE y LOAD, solo que puedes seguir añadiendo/leyendo más datos, hasta que cierres el fichero.

Consejo aparte: no os dejeis el fichero abierto mucho tiempo. Abridlo, leedlo/modificadlo y cerrarlo en un solo frame. Mantenerlo abierto puede provocar inestabilidad en algunos sistemas (GP2X, por ejemplo), así que guardad la información en memoria, y usad los ficheros solo el tiempo estrictamente imprescindible.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Desconectado DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 180
  • Sexo: Masculino
    • Ver Perfil
Re:Es posible leer/escribir en fichero binario: byte=1byte, word=2byte??
« Respuesta #4 en: Diciembre 17, 2016, 08:57:44 am »
Vale papá.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Desconectado alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
  • Sexo: Femenino
    • Ver Perfil
Re:Es posible leer/escribir en fichero binario: byte=1byte, word=2byte??
« Respuesta #5 en: Diciembre 17, 2016, 10:08:34 am »
A mi me da la sensación mala cuando dejo el fopen abierto mas de frame, realmente intento cerrarlos de forma inmediata después de leer o escribir.

Me gusta leer y escribir los datos necesarios, hace mucho que no uso save/load es típica de div2