Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Settings y Collection
#1

Pues o algo hago mal o Gambas3 se lía con los Settings y las Collection.

Puedes hace algo así:

GAMBAS
  1. aCol = ["1":"aaaaaa", "2":"bbbbbbbbbb", "3":"cccccccc"]
  2.  
  3. Settings["Tipos/Coleccion"] = aCol
  4.  
  5. Y funciona ok. Lo guarda como:
  6. [Tipos]
  7. Coleccion={"1": "aaaaaaa","2": "bbbbbbbbbb","3": "cccccccccc"}
  8.  
  9. Peeeeero. Luego no lo lee. Si haces
  10. aCol = Settings["Tipos/Coleccion"]



Da un error: "No coinciden los tipos: requerido Collection obtenido String"

Pues vaya!!!!!!
    ¡Gracias!
#2

Me autorespondo con la solución que he encontrado:

Grabar:

GAMBAS
  1. Settings["Tipos/Coleccion"] = JSON.Encode(aColeccion)




Leer:

GAMBAS
  1. aColeccion = JSON.Decode(Settings["Tipos/Coleccion"])



y funciona.
    ¡Gracias!
#3

Ya que usas colecciones sugiero que uses la clase Config que hicimos entre TercoIDE y yo en lugar de settings.
La venimos usando desde hace bastante tiempo en todos nuestros programas y es muy cómoda para el desarrollo porque te permite agregar variables durante el desarrollo del programa de forma ordenada y luego podes acceder a ellas con el operador "."
Luego, con el método Save() guardas las variables y con el método Load() las recuperas.

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • gartumar2
    ¡Gracias!
#4

Sí, ya le había echado un vistazo a la clase Config, pero la había descartado porque necesito algo muy sencillo. No obstante y viendo las limitaciones de Settings, creo que la voy a reconsiderar.

Al final resulta que la solución de JSON no me vale. Al hacer JSON.Decode si se encuentra, como es el caso, con un par como "boolean":"b" salta un error de que boolean es un token invalido.

He optado por una solución chapuza, pero que sí que funciona: separo la colección en dos arrays, una para las key y otra para los valores y guardo estos arrays en Settings. Luego cuando leo los settings vuelvo a crear la coleccion a partir de estos dos arrays.

Un saludo.

(12-11-2022, 15:51)tincho escribió:  Ya que usas colecciones sugiero que uses la clase Config que hicimos entre TercoIDE y yo en lugar de settings.
La venimos usando desde hace bastante tiempo en todos nuestros programas y es muy cómoda para el desarrollo porque te permite agregar variables durante el desarrollo del programa de forma ordenada y luego podes acceder a ellas con el operador "."
Luego, con el método Save() guardas las variables y con el método Load() las recuperas.

Gracias, tincho.

Clase Config instada y en uso. Fácil y a la primera.

Un saludo.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)