Settings è un'oggetto dinamico, come la maggioranza di quelli presenti in Gambas.
La dichiarazione viene fatta come hai tu scritto:
DIM hSetting AS NEW Setting
Una volta creato, puoi aggiungere elementi:
hSetting["Gruppo/Elemento"] =
Tieni conto che Setting capisce il tipo di dato che deve scrivere, per cui le stringhe verranno racchiuse tra doppi apici, i numeri no. Le date vengono convertite in stringa.
Se il "Gruppo" non esiste, lo crea; se "Elemento" non esiste, lo crea sotto il "Gruppo".
La lettura avviene in modo inverso:
= hSetting["Gruppo/Elemento"]
Nota importante:
una volta aperto un'oggetto Setting, la scrittura viene gestita in memoria, e salvata al termine dell'uso, o con il metodo Save(); è da tener presente che non è possibile eliminare gruppi o elementi una volta scritti, o impostati in memoria. Nel caso si volesse cambiare la struttura del file risultante, sarà necessario eliminare quello esistente, riscrivendolo poi nuovamente con la nuova logica.
A seguito di questo, qualche tempo fà, ho scritto alcune classi ad-hoc, che simula il comportamento di Setting, ma la gestione viene fatta esclusivamente in memoria, salvando poi il risultato sul file alla fine, e con l'apposito metodo; inoltre permette di aggiungere ed eliminare elementi e attributi, come se fosse un array (e in effetti ci si avvicina di molto). Infine ha alcuni attributi che lo rendono più avanzato.
Stessa cosa l'ho fatta per la gestione dei file XML (le classi sono molto simili)...
Questi oggetti l'ho inseriti in pgDesigner, e fino ad ora non mi hanno dato alcun problema, neppure con file di grosse dimensioni (>10M).
Dato che in queste classi ho adottato alcuni miei accorgimenti, dovrò fare un pò di pulizia, e a breve li metterò a disposizione qui sul sito...
Bye