La creazione di un progetto da zero in Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
I files INI (Tutorial completo)

I files .INI, estensione che deriva dal termine INItialization, sono sostanzialmente semplici files di testo che permettono di memorizzare informazioni utili sulle applicazioni accessibili all'utente. La loro struttura è tale da poter salvare e recuperare in modo semplice ed intuitivo le informazioni in essi contenuti. L'utilità di tali files consiste proprio nel vantaggio di poter immagazzinare in essi tutte le informazioni sull'applicazione, evitando così di dover ricompilare il programma per modificarle. In poche parole dunque un file INI rappresenta un tramite tra il programmatore e l'applicazione sviluppata.
Una seconda caratteristica utile dei files INI è quella di essere files di testo, cosa che rende particolarmente agevole l'eventuale elaborazione del loro contenuto, visto che a tale scopo può essere utilizzato qualsiasi editor di testo (per esempio il classico ma sempre utile Microsoft Notepad).
Qui di seguito mostriamo un semplice esempio di file .ini aperto per l'appunto con l'aiuto di Microsoft Notepad:


Un file di questo tipo si compone in sostanza di tre elementi: le sezioni, le chiavi ed i valori. Facendo riferimento all'immagine appena vista, analizziamo ciascuno di questi tre fattori:
Sezione è il nome incluso nella parentesi (nella figura soprastante [GENERALE]) 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.

Come sono ordinati sezioni e chiavi all'interno del file non ha importanza perchè utilizzando nomi univoci non dovrebbero esserci ripetizioni nel documento ini. Inoltre il segno di punto e virgola ";" viene generalmente utilizzato per indicare un commento: come accade nel codice dei progetti sviluppati in Visual Basic in presenza del segno " ' ", una chiave o un valore che segue il punto e virgola viene del tutto ignorato.

Prima di poter utilizzare un file INI comunque sarà necessario dichiarare due funzioni API e scrivere alcune funzioni cosiddette "di contorno" generate appunto intorno alle due funzioni:
La prima è l'API GetPrivareProfileString contenuta in kernel32.dll di cui abbiamo qui sotto la dichiarazione:

Declare Function GetPrivateProfilestring Lib "kernel32" Alias _
"GetPrivateprofileStringA" (ByVal lpApplicationName _
As String, ByVal lpKeyName As Any, ByVal lpDefault _
As String, ByVal lpReturnedString As String, ByVal _
nSize As Long, ByVal lpFileName As String) As Long

La seconda è invece l'API WritePrivateProfileString:

Declare Function WritePrivateProfileString Lib "kernel32" Alias _
"WritePrivateProfileStringA" (ByVal lpApplicationName _
As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long

Per quello che riguarda le funzioni di contorno, vediamo una funzione sGetINI e una subroutine o sottoprocedura writeINI che ci servono rispettivamente per recuperare e per scrivere i dati di una nostra ipotetica applicazione da e su un file ini. Ecco innanzitutto la funzione sGetINI, nella quale si può notare che i parametri richiesti sono il nome del file INI, la sezione, la chiave, il valore, il valore di default (che permette di operare anche se il file INI non esiste):

Public Function sGetINI(sINIFile As String, sSection As String, sKey _
As String, sDefault As String) As String
Dim sTemp As String * 256
Dim nLenght As Integer
sTemp = Space$(256)
nLenght = GetPrivateProfilestring(sSection, sKey, sDefault, sTemp, _
255, sINIFile)
sGetINI = Left$(sTemp, nLenght)
End Function

Ed ecco adesso la subroutine writeINI:

Public Sub writeINI(sINIFile As String, sSection As String, sKey _
As String, sValue As String)
Dim n As Integer
Dim sTemp As String
sTemp = sValue
For n = 1 To Len(sValue)
If Mid$(sValue, n, 1) = vbCr Or Mid$(sValue, n, 1) = vbLf _
Then Mid$(sValue, n) = " "
Next n
n = WritePrivateProfileString(sSection, sKey, sTemp, sINIFile)
End Sub


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
E-mail:
vbitalia@libero.it