Ecco alcuni frammenti di codice che utilizziamo, dovrebbe aiutarti a ottenere l'idea.Queste routine utilizzano le chiamate API. Sono incluse due funzioni per leggere/scrivere un'impostazione di stringa in una sezione specifica nel file ini.
Private 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
Private 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
Public Function IniFileName() As String
IniFileName = "c:\[yourpath here]\settings.ini"
End Function
Private Function ReadIniFileString(ByVal Sect As String, ByVal Keyname As String) As String
Dim Worked As Long
Dim RetStr As String * 128
Dim StrSize As Long
iNoOfCharInIni = 0
sIniString = ""
If Sect = "" Or Keyname = "" Then
MsgBox "Section Or Key To Read Not Specified !!!", vbExclamation, "INI"
Else
sProfileString = ""
RetStr = Space(128)
StrSize = Len(RetStr)
Worked = GetPrivateProfileString(Sect, Keyname, "", RetStr, StrSize, IniFileName)
If Worked Then
iNoOfCharInIni = Worked
sIniString = Left$(RetStr, Worked)
End If
End If
ReadIniFileString = sIniString
End Function
Private Function WriteIniFileString(ByVal Sect As String, ByVal Keyname As String, ByVal Wstr As String) As String
Dim Worked As Long
iNoOfCharInIni = 0
sIniString = ""
If Sect = "" Or Keyname = "" Then
MsgBox "Section Or Key To Write Not Specified !!!", vbExclamation, "INI"
Else
Worked = WritePrivateProfileString(Sect, Keyname, Wstr, IniFileName)
If Worked Then
iNoOfCharInIni = Worked
sIniString = Wstr
End If
WriteIniFileString = sIniString
End If
End Function
Davvero? Perché dovresti utilizzare una libreria esterna (presumo che l'associazione tardiva, ovviamente) per qualcosa che VBA fornisce in modo nativo? Quali sono i vantaggi? –
A mio parere, facilita la lettura del codice. E puoi usare For ... Each per scorrere facilmente le cartelle. – HardCode
Probabilmente è una buona idea non leggere e scriverli direttamente. L'approccio dell'API è molto migliore perché astrae la necessità di comprendere la formattazione del file INI. Non ha senso scrivere codice per capire i file INI quando già esiste. – JohnFx