Guide e Tutorials:indexed | |||||||||||||
Guida pratica ai Files INI (Tutorial completo) E' stato richiesto un approccio più pratico all'utilizzo dei files INI. Questo articolo ha dunque lo scopo di mostrare in modo evidente come utilizzare questo comodo sistema di archiviazione dei dati fondamentali per l'applicazione che stiamo sviluppando. Soltanto di sfuggita recuperiamo le definizioni date nel primo articolo sui files INI, definizioni fondamentali per la comprensione del progetto che verrà di seguito illustrato: Sezione è il nome incluso nella parentesi che raggruppa una serie di valori e di chiavi. Rappresenta, semplificando molto il concetto, una sorta di titolo del paragrafo. Chiave è una stringa univoca, almeno all'interno di ogni singola sezione, ossia continuando il nostro paragone semplificato, all'interno di ogni paragrafo. La chiave è sempre seguita dal segno "=" e da un valore Valore è il valore corrente di una particolare chiave in un file .INI. Sia le sezioni che le chiavi servono praticamente per poter definire un valore. La particolarità di un file INI risiede nella sua struttura, divisa come si è visto in Sezioni, Chiavi e Valori. Quello che c'interessa è il Valore, ossia il dato che andremo a recuperare da un file ini. Per poter far questo è però necessario indicare la Sezione e la Chiave che individuano tale Valore. Il concetto è molto facile, quasi banale. Sicuramente alla fine dell'articolo sarete in grado di gestire un file di questo tipo senza problemi, soprattutto dopo aver preso confidenza con l'esempio riportato in fondo alla lezione. In ogni caso se dovesse non essere chiara la spiegazione di una definizione, all'interno del discorso che andremo a cominciare, fare riferimento all'articolo I FILES INI Come abbiamo già visto nel succitato articolo, prima di poter utilizzare un file INI è necessario dichiarare due funzioni API, nella fattispecie GetPrivateProfileString e WritePrivateProfileString. Anche questa volta vediamone la dichiarazione:
mentre per quanto riguarda l'API WritePrivateProfileString:
Com'è facile da intuire, GetPrivateProfileString recupera i valori dai files INI, mentre WritePrivateProfileString scrive eventualmente la Sezione e sicuramente Chiavi e Valori. Per rendersi conto di ciò basta la semplice applicazione che andremo adesso a sviluppare. Sarà necessario aprire un progetto EXE Standard. Trasciniamo quindi dalla sezione Generale della finestra di sviluppo di Visual Basic tre controlli TextBox e due CommandButton. Per una maggiore comprensione del progetto è consigliabile organizzare la form come da figura (eventualmente inserendo sul piano anche le Label, non fondamentali però ai nostri fini): Per riuscire ad intenderci meglio sui controlli impostare la proprietà Name della casella di testo più lunga (quella in alto, contrassegnata dalla Label "Sezione") a "txtSezione". Facciamo la stessa cosa con la casella di testo a sinistra impostandone la proprietà Name a "txtChiave" ed infine impostiamo Name della casella più a destra a "txtValore". Allo stesso modo chiamiamo il pulsante a destra cmdCarica e quello a sinistra cmdSalva. Naturalmente la proprietà Caption dei controlli è lasciata alla fantasia di ognuno. Volendo iniziare a lavorare sul codice sarà necessario innanzitutto inserire nella sezione generale del codice (ossia tra prime righe del codice) le dichiarazioni delle API appena viste:
Adesso nell'evento Click di cmdSalva, inseriamo la procedura da effettuare nel caso in cui si voglia salvare un file INI con tutti i dati al suo interno. Innanzitutto dichiariamo il valore di ritorno, un intero a 32 bit che chiamiamo ValoreDiRitorno e che ci indica se la funzione chiamata ha avuto effetto. Per entrambe le API viste prima infatti un valore di ritorno pari a 0 significa un errore di esecuzione. Dichiariamo inoltre il nome col quale vogliamo salvare il file INI. Ecco allora la prima parte del codice
Adesso chiamiamo la funzione WritePrivateProfileString per scrivere i dati nel file, associando il valore di ritorno alla variabile numerica che avevamo già dichiarato, ossia ValoreDiRitorno:
Notare che i parametri richiesti dalla funzione sono i tre dati che compariranno nel file INI: Sezione, Chiave e Valore ed in più il nome del file che dev'essere salvato. Come già illustrato in precedenza, un valore di ritorno della WritePrivateProfileString pari a 0 è determinato da un errore. Siccome lavorando coi files un errore può essere difficile da individuare, gestiamo quest'eventualità con un messaggio di avviso. Chiudiamo infine la sottoprocedura con End Sub:
Passando adesso al recupero delle informazioni contenute nel file INI, dichiariamo all'interno dell'evento Click di cmdApri il valore di ritorno della GetPrivateProfileString che chiameremo anche in questo caso ValoreDiRitorno, che ha lo stesso scopo del valore di ritorno visto poco fa relativamente all'API WritePrivateProfileString. In più dichiariamo il percorso del file da aprire ed una stringa di ritorno, che rappresenta la il Valore che andremo a recuperare dal file INI:
Recuperiamo dunque il Valore richiesto richiamando l'API GetPrivateProfileString:
I parametri qui richiesti sono la Sezione, la Chiave, una stringa di dafault, la variabile nella quale inserire il Valore che otterremo, le dimensioni del Valore da recuperare, pari alla lunghezza della stringa nella quale inseriremo il Valore, ed il percorso del file. Anche qui sarà necessario gestire l'errore. Se infatti il valore di ritorno della funzione è pari a 0, visualizziamo un messaggio d'errore:
In caso contrario, la casella di testo txtValore riporterà il Valore ricercato. Chiudiamo anche in questo caso la sottoprocedura con un End Sub:
A questo punto facciamo un piccolo test. Scriviamo nella casella txtSezione "Generale", nella casella txtChiave "Nome" e nella txtValore "VBItalia". Salviamo il file con la pressione del tasto "Salva". Adesso andiamo a recuperare il file "c:\test.ini" nella directory C: del computer ed apriamolo con un editor di testo (per default Microsoft NotePad). Ecco ciò che leggeremo: Senza cancellare il file INI, scriviamo ancora nella casella txtSezione "Generale", nella casella txtChiave "Anno" e nella txtValore "2001". Salviamo nuovamente il file ed andiamo ad aprirlo per la seconda volta. La Sezione [Generale] si sarà completata con l'aggiunta della Chiave "Anno" e del valore rispettivo "2001": Per finire cambiamo la Sezione, scrivendo questa volta nella casella txtSezione non più "Generale" ma ad esempio "Utente", nella casella txtChiave "Reg.Key" e nella txtValore "22390-32-15". Ci apparirà quanto segue: Se volessimo recuperare un Valore in particolare dovremmo a questo punto specificare all'interno dell'applicazione che abbiamo sviluppato, la Sezione che contiene il valore e la Chiave posta in corrispondenza di tale valore. Nel file ini che abbiamo appena salvato ad esempio, per recuperare il Valore 2001 dovremmo scrivere nella casella di testo txtSezione "Generale" e nella casella txtChiave "Anno": |
Archivio:ndexed | ||||
Lezioni | Commenta questa lezione | Invia la tua guida | Avviso per le nuove lezioni | Proponi un argomento |
Visual Basic Italia© copyright 2000 - tutti i diritti riservati |