Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: unixhacker2600 en Octubre 19, 2013, 11:49:09 PM

Título: Abrir .ini
Publicado por: unixhacker2600 en Octubre 19, 2013, 11:49:09 PM
Hola quería saber porqué no funciona mi código,os lo dejo:
ini_open(working_directory+"\Data\Options.ini")
global.render_distance=ini_read_real("graphics","renderdistance",0)
ini_close()

creo que no me abre el .ini,querría saber porqué y como arreglarlo.
Título: Re:Abrir .ini
Publicado por: Iros en Octubre 22, 2013, 01:06:32 AM
El problema es que GM nada más permite manipular los *.ini ÚNICAMENTE desde el directorio raíz del proyecto, es decir en el mismo directorio donde está el ejecutable. Si queres usar *.ini desde otro directorio tenes que usar alguna librería.
Título: Re:Abrir .ini
Publicado por: Texic en Octubre 22, 2013, 01:27:17 AM
Usen txt, es mucho mejor que un horrible y feo ini
Título: Re:Abrir .ini
Publicado por: Iros en Octubre 22, 2013, 01:30:48 AM
El *.ini es estructurado y ordenado, vos buscas la llave y ya, el *.txt no.
Título: Re:Abrir .ini
Publicado por: Texic en Octubre 22, 2013, 03:22:41 AM
Al revés, el txt es el estructurado y ordenado, hay que acceder a los elementos secuencialmente, si bien el ini es más simplón restringe mucho con eso de que tiene que ser la carpeta del juego, y no es recomendable usar una dll para eso, perderías el soporte multiplataforma de gm studio, e inclusive en windows surgen más incompatibilidades según el sistema operativo y las actualizaciones que tengas encima
Título: Re:Abrir .ini
Publicado por: unixhacker2600 en Octubre 22, 2013, 05:23:32 PM
Vale,pero a mi me gustaría un .ini,este código no funciona y el ini esta en la carpeta del proyecto!
Que estoy haciendo mal?Me lo podeis explicar?
ahora probé con este código:
ini_open("Options.ini")
global.render_distance=ini_read_real("Graphics","Render_Distance",320)
ini_close()
Título: Re:Abrir .ini
Publicado por: brunoxzx en Octubre 22, 2013, 07:59:01 PM
Solo arrastra el .ini en los "included files" que están en el arbol de recursos debajo de los rooms  ;).

@Texic: Estoy casi seguro de que gm no te permite manipular de ningún modo archivos fuera de la carpeta del proyecto, independientemente de si estos son .ini o .txt.
Título: Re:Abrir .ini
Publicado por: Iros en Octubre 23, 2013, 01:48:59 AM
Mmm...es raro que no funcione, ¿que te larga al leer el valor del global? Es decir, si aunque sea te larga el valor por defecto que le pusiste (320) o que valor.

Aparentemente está todo bien, quizás es un problema de sintaxis, es decir que podes haber escrito algo mal en el código con respecto al *.ini.
Título: Re:Abrir .ini
Publicado por: Wadk en Octubre 23, 2013, 02:32:42 AM
Cita de: brunoxzx en Octubre 22, 2013, 07:59:01 PM@Texic: Estoy casi seguro de que gm no te permite manipular de ningún modo archivos fuera de la carpeta del proyecto, independientemente de si estos son .ini o .txt.
Te equivocás, al menos en GM8 para atrás, es solo con las funciones ini la restricción.
De hecho yo una vez hice unos scripts para leer inis en otros directorios usando funciones de archivos de texto. Y funcionaba, pero descarté la idea porque el código era un spaghetti bastante importante.
Título: Re:Abrir .ini
Publicado por: brunoxzx en Octubre 23, 2013, 03:48:39 AM
Cita de: Wadk en Octubre 23, 2013, 02:32:42 AM
Te equivocás, al menos en GM8 para atrás, es solo con las funciones ini la restricción.
De hecho yo una vez hice unos scripts para leer inis en otros directorios usando funciones de archivos de texto. Y funcionaba, pero descarté la idea porque el código era un spaghetti bastante importante.
Ah, en gmStudio la cosa cambió un poco con eso del soporte multiplataforma.

Para no liarse con la seguridad de acceso a diferentes directorios en múltiples sistemas operativos, decidieron hacer que solo se pueda acceder a archivos en la sandbox(así es como ellos lo llaman) que básicamente significa que únicamente tienes acceso de LECTURA a archivos dentro de el directorio de tu juego y escritura al almacenamiento local. Al intentar escribir en cualquiera de esos archivos que están en el directorio de tu juego, gm automáticamente crea una copia de dicho archivo en un directorio de almacenamiento local, distinto en cada dispositivo (en windows es %localappdata%), una vez hecho esto cada vez que intentes acceder al archivo se accederá a la versión del almacenamiento local. En windows y mac solo hay un modo de acceder a archivos fuera de la sandbox y es usando las funciones get_open_filename() y get_save_filename().
Título: Re:Abrir .ini
Publicado por: unixhacker2600 en Octubre 23, 2013, 10:01:48 AM
Encontré el fallo!
el .ini se guardaba en C:\Users\Miguéns\AppData\Local\rog1