from:vb6精简版 cInifile.clsPublic Sub EnumerateAllSections(ByRef sSections() As String, ByRef iCount As Long) Dim sIniFile As String Dim iPos As Long Dim iNextPos As Long Dim sCur As String
iCount = 0 Erase sSections sIniFile = Sections If (Len(sIniFile) > 0) Then iPos = 1 iNextPos = InStr(iPos, sIniFile, Chr$(0)) Do While iNextPos <> 0 If (iNextPos <> iPos) Then sCur = Mid$(sIniFile, iPos, (iNextPos - iPos)) iCount = iCount + 1 ReDim Preserve sSections(1 To iCount) As String sSections(iCount) = sCur End If iPos = iNextPos + 1 iNextPos = InStr(iPos, sIniFile, Chr$(0)) Loop End IfEnd Sub
有相关的API函数可以实现相关的功能。如: Public Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" _ ByVal lpAppName As String, ByVal lpReturnedString As String, _ yVal nSize As Long) As Long
Public Declare Function GetPrivateProfileSection Lib "kernel32" _ Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, _ ByVal lpReturnedString As String, ByVal nSize As Long, _ ByVal lpFileName As String) As Long
Dim sIniFile As String
Dim iPos As Long
Dim iNextPos As Long
Dim sCur As String
iCount = 0
Erase sSections
sIniFile = Sections
If (Len(sIniFile) > 0) Then
iPos = 1
iNextPos = InStr(iPos, sIniFile, Chr$(0))
Do While iNextPos <> 0
If (iNextPos <> iPos) Then
sCur = Mid$(sIniFile, iPos, (iNextPos - iPos))
iCount = iCount + 1
ReDim Preserve sSections(1 To iCount) As String
sSections(iCount) = sCur
End If
iPos = iNextPos + 1
iNextPos = InStr(iPos, sIniFile, Chr$(0))
Loop
End IfEnd Sub
Public Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" _
ByVal lpAppName As String, ByVal lpReturnedString As String, _
yVal nSize As Long) As Long
Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, _
ByVal lpFileName As String) As Long