Octubre 23, 2015, 10:26:19 PM Ultima modificación: Octubre 24, 2015, 12:06:50 AM por NiuWeb
Hace poco he aprendido a usar las array, y se me dan bien. Pero quisiera resolver algunas dudas que tengo en la cabeza:
1)- ¿Todos los datos (o como se les digan...xD) en forma de array se guardan en la variable?:
si tengo una variable global, y la uso como array (ej: global.datos = "no sé"), ¿puedo leer cualquier dato/array (como se diga...xD) desde otro objeto? o sea que si en un objeto 1 tengo:
[gml]
for(i=0;i<10;i+=1)
{
   global.data = get_integer("Escribe el número:",0);
}[/gml]

¿Puedo leer cualquier [i] de esa variable en otro objeto? algo así:

[gml]OBJETO 2:

draw_text(x,y,string(global.data[6]));[/gml]

2)- ¿Un Array se puede guardar en un .INI por completo?:
me explico:yo guardo la variable global.data en un ini, ¿Cuando yo abro nuevamente el ini y leo la varialbe, puedo usar todos sus [i]?

Agradecería que me respondieran estas preguntillas...xD XD XD XD XD
alaberga regué el café.

BA:STFW&RTFM

#1 Octubre 23, 2015, 10:30:52 PM Ultima modificación: Octubre 23, 2015, 10:40:14 PM por penumbra
Cita de: NiuWeb en Octubre 23, 2015, 10:26:19 PM
¿puedo leer cualquier dato/array (como se diga...xD) desde otro objeto?
Sí. Si la variable del arreglo es global, se puede leer cualquier elemento del arreglo desde cualquier objeto. De hecho, aunque no sea global, se puede leer desde cualquier objeto, sólo hay que usar el método punto (si no es global)

Cita de: NiuWeb en Octubre 23, 2015, 10:26:19 PM
¿Un Array se puede guardar en un .INI por completo?:
me explico:yo guardo la variable global.data en un ini, ¿Cuando yo abro nuevamente el ini y leo la varialbe, puedo usar todos sus [i]?
No. Guardar la variable que apunta al arreglo no va a guardar el contenido de los elementos en el ini. Se tiene que guardar elemento por elemento en el INI para poder recuperarlos después.

Entonces, ¿Podría guardarlos en un ini así?:

[gml]
ini_open("ini.ini")
for(i=0;i<10;i+=1)
{
   ini_write_real("data","variable",global.data);
}
ini_close();[/gml]

y para guardarlos así?:
[gml]
ini_open("ini.ini")
for(i=0;i<10;i+=1)
{
   global.NewData = ini_read_real("data","variable",global.data);
}
ini_close();[/gml]

Eso quedaría bien?
alaberga regué el café.

BA:STFW&RTFM

#3 Octubre 23, 2015, 11:12:27 PM Ultima modificación: Octubre 23, 2015, 11:17:12 PM por penumbra
Cita de: NiuWeb en Octubre 23, 2015, 11:04:44 PM
Entonces, ¿Podría guardarlos en un ini así?:

[gml]
ini_open("ini.ini")
for(i=0;i<10;i+=1)
{
   ini_write_real("data","variable",global.data);
}
ini_close();[/gml]
No. El ciclo se ejecuta 10 veces, pero las 10 veces se está guardando (sobreescribiendo 9 veces) un valor distinto en la misma clave "variable". Al final tendrás un solo elemento guardado en el arreglo, en lugar de 10.

De estp se deduce que debes encontrar una manera de, al a vez que se cambia de valor dentro del ciclo, cambiar (dinámicamente) la clave en donde se guardará el valor. Para esto sirve la función string() (los nombres de las secciones y claves en un archivo ini son cadenas, strings). En el foro ya hay ejemplos de esto, es cuestión de usar el buscador o quizás no, ya que es una solución fácil.

entonces, si pongo en el ini_write_real y en ini_read_real:

[gml]ini_write_real("data","data"+string(i),global.data);[/gml]

Ahora serviría?
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Octubre 23, 2015, 11:29:19 PM
entonces, si pongo en el ini_write_real y en ini_read_real:

[gml]ini_write_real("data","data"+string(i),global.data);[/gml]

Ahora serviría?
Sí, pero en lugar del segundo "data" sería "variable", ¿no? (de acuerdo con los ejemplos anteriores)

Ah, bueno. Pero la idea está bien...xD La intención es lo que cuenta...xD  XD XD

Gracias, Penumbra :D
alaberga regué el café.

BA:STFW&RTFM