Newsgroup: it.comp.lang.visual-basic
Titolo: File di configurazione

Stavo lavorando sulla procedura del file di configurazione della mia
applicazione, quando il dubbio fu.
Mi conviene più avere tante variabile bool locali alla form che mi
dicono se un dato valore è cambiato dal precedenete e quindi
in fase di salvataggio chiamare solamente i WriteProfString necessari,
oppure chiamare tanti WPS per quante sono le opzioni, indipendentemente
dal fatto che siano state modificate o meno?
-- 
Saluti
Andrea Moro

[*Andrea Moro*=
moroan...@tiscalinet.it
] ha scritto:


Visto che contempli la seconda, direi che c'è una terza via: Un'unica
variabile booleana che dice se è cambiato qualcosa. Se sì, applichi la
seconda, se no, niente.

Un controllino giusto il minimo necessario ....
-- 
Saluti
Andrea Moro

io sono più comodo a scrivere comunque tutte le opzioni, ovviamente se non
sono un migliaio.....
:-))
se sono solo variabili booleane, direi che potresti riscrivere ogni volta,
cosa ti costa?
non solo: ti racconto una mia esperienza. Una volta i campi del db che
contenevano le opzioni erano di tipo byte (per evitare i booleani con i loro
true/false, 0 e -1, vero/falso e così via). Con i byte, di solito, scrivo 0
o 1.
Un giorno, mentre non c'ero, ho trovato il db con i valori diversi da 0 e 1
(per dire, 17 o 90). Valori che non dovrebbero essere permessi. E' bastato
rientrare nel form e salvare le opzioni per sistemare tutto......
morale: salvando tutto, elimini eventuali sporcizie del db. così ti
consiglio io
good coding!!!
-- 
Damiani Liborio Igor
ig...@igordamiani.it
 - 
soft...@igordamiani.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 ha scritto nel messaggio
news:bj7isf$gdlkv$1...@ID-61006.news.uni-berlin.de...

Se hai voglia di spendere un minimo di tempo puoi fare una bella classe
riutilizzabile che si occupa della faccenda, salva capra e cavoli e ti
risparmia di "sporcare" tutto il resto delle tue form/applicazione.
In linea di massima dovrebbe avere qualcosa del genere:
-Un metodo LoadOptions() che con i parametri del caso carica le impostazioni
iniziali per la tua form/componente
-una property Value(Chiave) che data una chiave (la stessa che usi con
Read/WriteProfileString) legge e/o scrive il valore corrispondente
-un metodo SaveOptions per riscrivere tutto alla fine
Qual'e' il giochetto?
nel caricare le opzioni popoli una collection usando come item i valori
stessi e come Key la chiave del file di configurazione, carichi inoltre
un'altra collection/array parallelo che mantiene semplicemente un flag per
indicare se l'elemento e' stato modificato da quando l'hai letto.
(meglio ancora crei una sotto classe Option con 3 proprieta'
Key/Value/Changed e usi un unica collection di tali oggetti)
A questo punto nella Property Let Value non sovrascrivi direttamente in
collection, ma verifichi prima se il nuovo valore e' diverso da quello
precedente, impostando nel caso il flag di stato; il metodo di salvataggio
scorrera' quindi tutti gli elementi ma scrivera' su file solo quelli con il
flag attivo.
Le form necessitano a questo punto solo di creare un istanza della tua
classe principale e di seguire uno schema tipo
- In avvio LoadOptions e lettura di tutti i singoli valori
- In chiusura scrittura inconsizionata di tutti i valori e SaveOptions
Magari non e' chiarissimo quello che avevo in testa, ma credimi che e' molto
semplice da fare... se non mi fossi spiegato dimmelo e provo a postare due
righe di codice
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 consiglio io
Beh per questo ho fatto una routine di fixing che controllando l'ultima
data valida da quando ho salvato nel file di configurazione da programma
- se diversa - ripristina i valori in uno stato di corretto.
-- 
Saluti
Andrea Moro

No no chiaro, ma in linea teorica forse è anche troppo per quello che
devo fare. Nel senso, che la loadoption ce l'ho se le legge tutte, ma
dentro variabili globali che uso durante tutta la vita dell'applicazione.
La saveoption ce l'ho pure quella, e si scrive i valori nel file di
configurazione.
La fixvalue, che corregge eventuali puttanate scritte a mano nel file
senza usare il pannello di configurazione c'è.
L'unica cosa che non ho previsto è questa cosina (come volevo
fare con tante variabili booleane) di scrivere solo ciò che è cambiato.
Diciamo che il tuo metodo è sicuramente più performante che non
60 variabili boleane, ma che come riscontrato da Igor - mi pare -
salvando sempre tutto, correggi eventuali cazzate in un colpo solo.
Passare da quello che ho in mano alla classe ci vuole veramente poco,
ma per il momento non ne sento l'esigenza.
Ciao
Andrea

ma per il momento non ne sento l'esigenza.
Io, invece, non riesco a fare diversamente ;-)
Ho sempre una classe di configurazione, cosi' centralizzo la gestione
delle impostazioni e posso cambiare le modalita' di salvataggio (su
file, nel registro, su un db, sulla luna...) senza toccare una virgola
del resto del codice.
E la classe, con qualche adattamento alle varie applicazioni, me la
porto sempre appresso. Altro che .net!
-- 
ciao, hal

 porto sempre appresso. Altro che .net!
:)
ciao
ugo

 porto sempre appresso. Altro che .net!
ahahaha
-- 
Saluti
Andrea Moro

 ugo
-- 
Saluti
Andrea Moro

magari a tempo perso ...
Stasera a letto senza cena! ;-PPP
-- 
ciao, hal