Hola a todos, tengo una situación, necesito crear N documentos tipo "ini" y no logro crear uno solo en :GMS: anteriormente lo hacía en :GM8: con tan solo abrirlo (aunque no exista) y escribir en el, creo que es una situación de directorios pero la verdad no estoy enterado del cambio, agradezco a cualquiera que pueda ayudarme, saludos.
Cita de: sulcan en Abril 16, 2014, 01:42:24 AM
Hola a todos, tengo una situación, necesito crear N documentos tipo "ini" y no logro crear uno solo en :GMS: anteriormente lo hacía en :GM8: con tan solo abrirlo (aunque no exista) y escribir en el, creo que es una situación de directorios pero la verdad no estoy enterado del cambio, agradezco a cualquiera que pueda ayudarme, saludos.
MIENTRAS EN ALGUNAS de plataformas de Que PUEDE utilizar de el Numero Del archivo porción Sí SOLO PARA EL Incluidos Archivos Acceso, Vale la pena señalar de Que ES el los Dispositivos (Android, iOS, Windows Phone) debe utilizar el prefijo del working_directory párr Acceder a los Archivos almacenados COMO USAR solo la relativea camino no va a funcionar. Also vale la pena señalar Que los 8 módulos de Destino HTML5 y Ventanas TIENEN UN LIMITE ES EL Almacenamiento locales (Que Puede Ser de Entre 1 MB y 5 MB dependiendo del Navegador) Lo Que significa de Que No Se USTED le permitira Ahorrar Grandes sprites, Capturas de Pantalla, etc ... en algunas plataformas puede utilizar el nombre del archivo por sí solo para el acceso archivos incluidos, vale la pena señalar que en los dispositivos (Android, iOS, Windows Phone) debe utilizar el prefijo del working_directory:
acceder almacenado archivos como utilizando sólo la ruta relativa no funcionarán. También vale la pena señalar que los 8 módulos de destino HTML5 y Windows tienen un límite en el almacenamiento local (que puede ser de entre 1 MB y 5 MB dependiendo del navegador) lo que significa que usted no se le permitirá ahorrar grandes sprites, capturas de pantalla, etc ...
Nose si esto t ayuda.. esta sacado de la documentacion de yoyogames y traducido cn el traductor de google espero que te sirva.
Un saludo.
amigo a lo que entiendo es que quieres crear varios archivos ini??? osea ejemplo: archivo1.ini, archivo2.ini, archivo3.ini....
1- para que quieres tantos archivos si en uno solo podes controlar todo!!!!!
2-omitiendo el 1 punto!!! lo que tenes que hacer es esto
//para el primer archivo
ini_open("archivo1.ini");
//todo lo que quieras escribrir en el archivo
ini_close();
//para el segundo archivo
ini_open("archivo2.ini");
//todo lo que quieras escribrir en el archivo
ini_close();
//para el tercer archivo
ini_open("archivo3.ini");
//todo lo que quieras escribrir en el archivo
ini_close();
// y asi para todos los que quieras
saludos!!!
espero te ayude
Cerez0, gracias por la info eso explica al menos por qué al intentar en otras plataformas como android si pude hacerlo pero eso no resuelve el problema ya que no dice nada de windows :-X
ocarina lo que pasa es que el sistema que estoy realizando así lo requería (es una especie de base de datos) podrían hacerse ciertas modificaciones para que funcione con un solo documento, sin embargo el problema no es ese, la situación es que una vez que "creo" el ini e intento abrirlo en una cesión diferente no me es posible, asumo que es por que no se donde los guarda/crea, osea lo hago así como tu lo dices pero no tengo idea de donde lo pone :S.
Gracias por la ayuda.
Cita de: sulcan en Abril 17, 2014, 11:37:56 PM
la situación es que una vez que "creo" el ini e intento abrirlo en una cesión diferente no me es posible, asumo que es por que no se donde los guarda/crea, osea lo hago así como tu lo dices pero no tengo idea de donde lo pone :S.
¿A qué le llamas "crear" el INI? ¿Qué instrucciones estás usando? Me da la impresión que fuera de GM:S no has creado ningún archivo ini (por ejemplo con el bloc de notas). Los inis ya no se pueden manejar exactamente igual en GM:S que como se hacía en GM8 debido al modo sandboxed y las limitaciones que esto conlleva, pero no es ningún misterio, eso se explica acá
http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html (http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html)
un extracto:
"Cuando se trabaja co GM:S, debes considerar que cada plataforma tiene su propia área de escritura/guardado donde archivos y directorios pueden ser escritos y leídos. Abajo se enlistan esas áreas para cada plataforma:
•Windows - Windows tiene todos los archivos en el directorio %localappdata%\<Game Name> (en Windows 7 este es el directorio /Users/<User Name>/AppData/Local/<Game Name> directory)."
Crear un ini y especificar toda su estructura es posible hacerlo en GM:S, pero yo optaría por crearlo mediante el bloc de notas o cualquier otro editor de texto, luego este archivo se agrega a la lista de "included files" en GM:S.
Cita de: penumbra en Abril 18, 2014, 12:15:31 AM
Crear un ini y especificar toda su estructura es posible hacerlo en
GM:S, pero yo optaría por crearlo mediante el bloc de notas o
cualquier otro editor de texto, luego este archivo se agrega a la lista
de "included files" en GM:S.
Segundo a [user]penumbra[/user]. Cuando busques un INI y este no se haya creado el GM buscara en el INI incluido en el juego.
Eso si el INI incluido solo se puede leer.
Gracias por sus respuestas.
penumbra con crear me refiero a crearlo usando GM:S hasta donde sé se hace así:
ini_open
ini_write_real
Al hacer esto se busca un ini y si no se encuentra se crea de forma "temporal" y solo se conserva al usar la función write por lo que el resultado es crear un ini, no conozco otra forma de hacerlo si existe agradeceré la información.
Ahora gracias a sus comentarios y al artículo que me envía penumbra entiendo mejor lo nuevo de como se usan los ini's en GM:S por favor corrijanme si me equivoco:
Si incluyo los ini's en el juego no los podré modificar pero si los puedo usar como lectura y de esta forma solo servirían
como una especie de "plantilla" para poder guardar en la zona de escritura.
Lo que quiero hacer es que el "juego" cree por si solo N archivos ini con ciertos datos en el, para luego poder leerlos en otra partida y posiblemente modificarlos si así es necesario, es como una base de datos.
Por lo que incluir ini's en compilador no me va a funcionar.
No puedo usar un bloc de notas ni otro programa por que se supone que deba ser creado todo por GM:S
intentaré trabajar en %localappdata%\<Game Name> para ver si allí puedo lograr lo que quiero :D
gracias de nuevo por la información y por favor si me equivoco en algo agradeceré la corrección, saludos.
Cita de: sulcan en Abril 19, 2014, 11:11:37 PM
Si incluyo los ini's en el juego no los podré modificar pero si los puedo usar como lectura y de esta forma solo servirían
como una especie de "plantilla" para poder guardar en la zona de escritura.
Por supuesto que se pueden modificar, símplemente GMS toma ese archivo incluído precisamente como una "plantilla" (lectura) pero nada más la primera vez, las modificaciones (escritura) se guardarían en la zona de escritura y ahí se quedaría el ini modificado (la próxima partida aquí busca GMS el ini antes que en cualquier otra zona). De otra manera, no tendría mucho sentido usar inis si no se pudiera conservar cambios y todo volviera a perderse en cada nueva partida.
Ahora, lo que quieres hacer es algo raro. Yo no lo he intentado, pero de acuerdo al manual es posible hacerlo.
ini_open_from_string(string); Crea un ini temporal a partir de una cadena.
La cadena debe estar correctamente formateada como un archivo INI (es decirm con secciones, caracteres de salto de línea y valores) de otra menera el archivo ini no se creará correctamente. Hay que notar que este archivo ini es temporal y será removido de la memoria al momento de que se cierre (creo que esto es algo parecido a lo que te ocurre), perdiéndose así cualquier información que se haya guardado en él, sin embargo,
la función ini_close devuelve el archivo ini como una cadena completa la cual puede entonces ser guardada en un servidor o en disco.Es decir, se puede usar ini_open_from_string() para abrir cadenas guardadas con la función ini_close, pero en principio debes crear una variable que contenga toda la estructura original del ini.
penumbra no logré entender como es que la función ini_open_from_string(string) pudiera ayudarme :S, seguí realizando algunas pruebas y no doy aun con una solución :C, alguien sería tan amable de hacerme un ejemplo sencillo de como guardar en la zona de escritura y posteriormente leer? :D gracias
¿Ya intentaste el tutorial "Saving and Loading" que viene con el GM:S?