Noviembre 23, 2010, 02:36:38 AM Ultima modificación: Noviembre 25, 2010, 06:42:24 PM por hernis
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.

#1 Noviembre 23, 2010, 03:15:19 AM Ultima modificación: Noviembre 23, 2010, 04:38:32 AM por Topet
A que te refieres??, no logre comprender tu duda, debes explicar un poco mejor la pregunta para poder ayudarte.

Saludos
8) 8) 8)

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


#4 Noviembre 23, 2010, 04:18:25 AM Ultima modificación: Noviembre 23, 2010, 05:40:46 AM por Wadk
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?.
Vim.

Wadk ?que hace esto?
[gml]dec2base255(dec, b255);[/gml]

El script se llama a s? mismo recursivamente.
Vim.

?cuando uso este codigo en que sistema lo hace binario, decimal o hexadecimal?
[gml]file_bin_write_byte(fileid,byte)[/gml]

#8 Noviembre 23, 2010, 11:27:29 PM Ultima modificación: Noviembre 23, 2010, 11:42:34 PM por Wadk
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]
Vim.

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

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.
Vim.

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.