1 messaggio dal 16 aprile 2004
Aggiungendo le seguenti dichiarazioni per la ReadPrivateProfileString è possibile recuperare le informazioni relaitve alle sezioni presenti nel file ini e alle chiavi presenti in una sezione.

Private Declare Auto Function GetPrivateProfileString Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As IntPtr, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Private Declare Auto Function GetPrivateProfileString Lib "kernel32.dll" (ByVal lpApplicationName As IntPtr, ByVal lpKeyName As IntPtr, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer

Ecco un esempio sul modello di codice usato nell'articolo su come usare le dichiarazioni per il recupero della lista sezioni e lista chiavi.

Public Function GetSections(ByVal Filename As String) As String()
Dim Result As String
Dim results As String()
Dim RetVal As String = New String(" ", 32000)
Dim LenResult As Integer
Dim ErrString As String
LenResult = GetPrivateProfileString(IntPtr.Zero, IntPtr.Zero, "", RetVal, RetVal.Length, Filename)
If LenResult = 0 Then
If Not (File.Exists(Filename)) Then
ErrString = "Impossibile trovare il file " & Filename
Else
ErrString = "Impossibile eseguire l'operazione: la sezione o la chiave sono errate oppure l'accesso al file non è consentito"
End If
Throw New IniException(ErrString)
End If
Result = RetVal.Substring(0, LenResult)
results = Split(Result, Chr(0))
Dim lresults(results.Length - 2) As String
Array.Copy(results, lresults, results.Length - 1)
Return lresults
End Function

Public Function GetKeys(ByVal Filename As String, ByVal Section As String) As String()
Dim Result As String
Dim results As String()
Dim RetVal As String = New String(" ", 32000)
Dim LenResult As Integer
Dim ErrString As String
LenResult = GetPrivateProfileString(Section, IntPtr.Zero, "", RetVal, RetVal.Length, Filename)
If LenResult = 0 Then
If Not (File.Exists(Filename)) Then
ErrString = "Impossibile trovare il file " & Filename
Else
ErrString = "Impossibile eseguire l'operazione: la sezione o la chiave sono errate oppure l'accesso al file non è consentito"
End If
Throw New IniException(ErrString)
End If
Result = RetVal.Substring(0, LenResult)
results = Split(Result, Chr(0))
Dim lresults(results.Length - 2) As String
Array.Copy(results, lresults, results.Length - 1)
Return lresults
End Function

segue esempio di uso:

Sub Main()
Dim s As String
Dim f As String = "C:\Testini.ini"
Dim i As Int32
Dim sections As String()
Dim keys As String()

sections = GetSections(f)
For Each s In sections
Console.WriteLine("[" & s & "]")
keys = GetKeys(f, s)
For Each s1 As String In keys
Console.WriteLine(s1 & " = " & Read(f, s, s1))
Next
Next

End Sub

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.