gartumar2   12-11-2022, 13:50
#1
Pues o algo hago mal o Gambas3 se lía con los Settings y las Collection.

Puedes hace algo así:

Código:
Dim aCol as New Collection
aCol = ["1":"aaaaaa", "2":"bbbbbbbbbb", "3":"cccccccc"]

Settings["Tipos/Coleccion"] = aCol

Y funciona ok. Lo guarda como:
[Tipos]
Coleccion={"1": "aaaaaaa","2": "bbbbbbbbbb","3": "cccccccccc"}

Peeeeero. Luego no lo lee. Si haces
Dim aCol as New Collection
aCol = Settings["Tipos/Coleccion"]

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

Pues vaya!!!!!!
gartumar2   12-11-2022, 15:00
#2
Me autorespondo con la solución que he encontrado:

Grabar:

[code]


Leer:

[code]

y funciona.
tincho   12-11-2022, 15:51
#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.
gartumar2   12-11-2022, 17:58
#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.
Última modificación: 12-11-2022, 18:55 por gartumar2.
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.