Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: hernis en Noviembre 23, 2010, 02:36:38 AM

Título: [Solucionado]Archivos Binarios
Publicado por: hernis en Noviembre 23, 2010, 02:36:38 AM
Queria saber si no existe algun script que en vez de escribir de byte en byte, escriba un numero mas grande.
Creo que eso es todo.
Título: Re: [Ayuda]Archivos Binarios
Publicado por: LigTopet en Noviembre 23, 2010, 03:15:19 AM
A que te refieres??, no logre comprender tu duda, debes explicar un poco mejor la pregunta para poder ayudarte.

Saludos
8) 8) 8)
Título: Re: [Ayuda]Archivos Binarios
Publicado por: hernis en Noviembre 23, 2010, 03:32:38 AM
la parte quen no se como hacer es separar los valores en valores mas peque?os
para simplificarlo creo que seria con el string_delete
y seria escribo el primer numero, luego el segundo, asi sucesivamente
hasta dejar ningun numero
lo demas se como ponerlo
Título: Re: [Ayuda]Archivos Binarios
Publicado por: brunoxzx en Noviembre 23, 2010, 03:51:31 AM
No entiendo ?que quieres lograr?
Título: Re: [Ayuda]Archivos Binarios
Publicado por: Wadk en Noviembre 23, 2010, 04:18:25 AM
Si quer?s guardar n?meros mayores a 255, ten?s que convertirlos a base 255 antes de guardarlos y despu?s guardar cada "d?gito" como un byte.
EDIT: Me diste algo interesante para hacer. Voy a intentar crear un script que lo haga :p

EDIT 2: Hecho.
[gml]
// dec2base255(dec)

dec = argument0;
b255 = string_repeat(argument1, is_string(argument1));
b255 += chr(dec mod 255);
dec /= 255;
dec = floor(dec);

if  (dec < 2){
    return b255;
}
return dec2base255(dec, b255);
[/gml]
No est? probado.
Se supone que le pas?s un int y devuelve un string. Cada caracter del string devuelto corresponde a un d?gito del n?mero en base 255. Para saber que n?mero representa ten?s que usar su valor ASCII (funci?n ord).

EDIT 3: Ten?a un error. Ya lo arregl?.
Título: Re: [Ayuda]Archivos Binarios
Publicado por: brunoxzx en Noviembre 23, 2010, 05:15:18 AM
Wadk ?que hace esto?
[gml]dec2base255(dec, b255);[/gml]
Título: Re: [Ayuda]Archivos Binarios
Publicado por: Wadk en Noviembre 23, 2010, 05:39:24 AM
El script se llama a s? mismo recursivamente.
Título: Re: [Ayuda]Archivos Binarios
Publicado por: hernis en Noviembre 23, 2010, 05:50:09 PM
?cuando uso este codigo en que sistema lo hace binario, decimal o hexadecimal?
[gml]file_bin_write_byte(fileid,byte)[/gml]
Título: Re: [Ayuda]Archivos Binarios
Publicado por: Wadk en Noviembre 23, 2010, 11:27:29 PM
Ehh O_O el script convierte de decimal a base 255...
A ver, esper?. Dejame hacerte algo m?s sencillo de usar. En un rato edito.

EDIT:
Para guardar (script que se debe llamar file_bin_write_int):
[gml]// file_bin_write_int(fileid, int)
var int, byte, bytes, i;

int = argument1;
for (i = 0; dec > 1; i += 1){
    byte = dec mod 255;
    int /= 255;
    int = floor(dec);
}
bytes = i;

file_bin_write_byte(argument0, bytes);

for (i = 0; i < bytes; i += 1){
    file_bin_write_byte(argument0, byte);
}[/gml]

Para cargar (script que se debe llamar file_bin_read_int):
[gml]// file_bin_read_int(fileid)
var int, i;

int = 0;
for (i = 0; i < file_bin_read_byte(f); i += 1){
    int += file_bin_read_byte(argument0) * power(255, i);
}

return i;[/gml]
Título: Re: [Solucionado]Archivos Binarios
Publicado por: hernis en Noviembre 25, 2010, 05:59:48 PM
Al comienzo yo pensaba ke al usar las funciones binarias de escrituras y lectura escribia usando el sistema binario  ???, solo haciendolo con el 0 y el 1. por eso es ke preguntaba como escribir cada valor y sobretodo xq serian casi 64 valores.

Pero al ver los ejemplos de Wadk vi ke el estaba usando el sistema decimal. Entonces kise hacer las pruebas y me di cuenta de eso. Si es en decimal se me hace mas facil

Bueno como saben es mejor preguntar ke kedarse callado.
De todos modos aprendi a usar el for , ke las variables creadas en los scripts solo funcionan dentro del script y tambien a usar el return.
Cada dia aprendemos algo nuevo, no nacemos sabiendo :D

Gracias x los scripts ahorita no los utilizare xro tal vez despues
Título: Re: [Solucionado]Archivos Binarios
Publicado por: Wadk en Noviembre 25, 2010, 07:36:48 PM
No hombre XD. Un byte es un n?mero del 0 al 255. Si quer?s escribir un n?mero m?s alto, pod?s con mis scripts.
Título: Re: [Solucionado]Archivos Binarios
Publicado por: hernis en Noviembre 25, 2010, 08:29:28 PM
Cita de: Wadk en Noviembre 25, 2010, 07:36:48 PM
No hombre XD. Un byte es un n?mero del 0 al 255. Si quer?s escribir un n?mero m?s alto, pod?s con mis scripts.
solo estoy trabajando con bytes. con numeros grandes me referia a algo asi 10101011110100000010, en el sistema binario.
y los scripts tal vez lo use despues.