PDA

View Full Version : [vb] Salvare le impostazioni di un programma


leon84
20-05-2005, 07:16
Salve,
nel programma che ho realizzato ci sono delle costanti tipo i percorsi dei file che attualmente vengono inizializzate nell'evento load della form principale ...
Ho preparato una form in cui è possibile settare questi percorsi e ora mi chiedevo : affinché siano disponibili alla successiva esecuzione del programma come mi conviene salvarli ????? In un file binario per caso ??? o meglio in un file ad accesso casuale ??? Voi che fareste ?

Massi91
20-05-2005, 13:37
io li salverei in un ini ke è molto pratico e funzionale...

leon84
20-05-2005, 20:44
io li salverei in un ini ke è molto pratico e funzionale...

Perché esiste qualche procedura particolare per la gestione di un file ini ?

leadergl
21-05-2005, 10:57
Perché esiste qualche procedura particolare per la gestione di un file ini ?


Si...

' -----------------------------------------------------------------
'Funzioni per la Gestione dei Files .INI delle Impostazioni
' -----------------------------------------------------------------
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
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


Public Function INIRead(File As String, Section As String, Item As String) As String
Dim sBuf As String
Dim iRC As Integer

sBuf = Space(1023) 'Leggi stringhe di 1024 caratteri
iRC = GetPrivateProfileString(Section, Item, "Not Found", sBuf, 1023, App.Path + "/" + File)
sBuf = Left$(sBuf, iRC)

If StrComp(sBuf, "Not Found") = 0 Then
INIRead = vbNullString
Else
INIRead = sBuf
End If

End Function

Public Sub INIWrite(File As String, Section As String, Item As String, ItemValue As String)
WritePrivateProfileString Section, Item, ItemValue, App.Path + "/" + File
End Sub

leon84
21-05-2005, 12:00
Si...

' -----------------------------------------------------------------
'Funzioni per la Gestione dei Files .INI delle Impostazioni
' -----------------------------------------------------------------
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
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


Public Function INIRead(File As String, Section As String, Item As String) As String
Dim sBuf As String
Dim iRC As Integer

sBuf = Space(1023) 'Leggi stringhe di 1024 caratteri
iRC = GetPrivateProfileString(Section, Item, "Not Found", sBuf, 1023, App.Path + "/" + File)
sBuf = Left$(sBuf, iRC)

If StrComp(sBuf, "Not Found") = 0 Then
INIRead = vbNullString
Else
INIRead = sBuf
End If

End Function

Public Sub INIWrite(File As String, Section As String, Item As String, ItemValue As String)
WritePrivateProfileString Section, Item, ItemValue, App.Path + "/" + File
End Sub


Fichissimo !!!!!!!
Beh molto bello .. solo dovrei un attimo capirci sulla questione sezioni, item ecc ....

Se ricordo bene la sezione comincia con parentesi quadre vero ????
Ad esempio sezione "percorsi" nell'ini diventa :
[percorsi]

e l'item sarà :

directory_incoming = c:\incoming

vero ?

leadergl
21-05-2005, 12:42
Config.ini:
[Sezione]
Item=ItemValue

ItemValue = INIRead("Config.ini", "Sezione", "Item")

INIWrite "Config.ini", "Sezione", "Item", ItemValue


questo è tutto quello che serve sapere, inoltre il valore di ritorno di INIRead è una stringa.

leon84
23-05-2005, 08:26
Config.ini:
[Sezione]
Item=ItemValue

ItemValue = INIRead("Config.ini", "Sezione", "Item")

INIWrite "Config.ini", "Sezione", "Item", ItemValue


questo è tutto quello che serve sapere, inoltre il valore di ritorno di INIRead è una stringa.

Ti ringrazio sei stato gentilissimo