?? 如何列舉ini文件中所有的項.txt
字號:
在 QA000940 “VB中如何讀取INI文件”中 介 紹 了 如 何 讀 寫 INI文 件 。 讀 INI文 件 應 該 使 用 GetPrivateProfileString, 該 函 數 定 義 如 下 :
Declare Function GetPrivateProfileString Lib _
"kernel32" Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As Any, ByVal lpKeyName As Any, _
ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As String) As Long
請 注 意 這 里 我 們 定 義 前 兩 個 參 數 為 Any類 型 。 按 照 API說 明 , 如 果 lpApplicationName參 數 為 NULL, 則 該 函 數 返 回 所 有 的 段 , 如 :
Dim s As String
s = Space(256)
GetPrivateProfileString 0&, 0&, "", s, 256, "control.ini"
Dim v As Variant
v = Split(s, Chr(0))
Dim i
For i = 0 To UBound(v)
List1.AddItem v(i)
Next
這 里 的 Split是 VB6的 新 函 數 , vb6的 用 戶 可 以 使 用 :
Public Function Split(ByVal sIn As String, Optional sDelim As _
String, Optional nLimit As Long = -1, Optional bCompare As _
VbCompareMethod = vbBinaryCompare) As Variant
Dim sRead As String, sOut() As String, nC As Integer
If sDelim = "" Then
Split = sIn
End If
sRead = ReadUntil(sIn, sDelim, bCompare)
Do
ReDim Preserve sOut(nC)
sOut(nC) = sRead
nC = nC + 1
If nLimit <> -1 And nC >= nLimit Then Exit Do
sRead = ReadUntil(sIn, sDelim)
Loop While sRead <> ""
ReDim Preserve sOut(nC)
sOut(nC) = sIn
Split = sOut
End Function
Public Function ReadUntil(ByRef sIn As String, _
sDelim As String, Optional bCompare As VbCompareMethod _
= vbBinaryCompare) As String
Dim nPos As String
nPos = InStr(1, sIn, sDelim, bCompare)
If nPos > 0 Then
ReadUntil = Left(sIn, nPos - 1)
sIn = Mid(sIn, nPos + Len(sDelim))
End If
End Function
而 如 果 第 一 個 參 數 不 為 NULL, 第 二 個 參 數 為 NULL, 則 返 回 段 中 所 有 項 的 名 字 , 如
Dim s As String
s = Space(256)
GetPrivateProfileString "don't load", 0&, "", s, 256, "control.ini"
Dim v As Variant
v = Split(s, Chr(0))
Dim i
For i = 0 To UBound(v)
List1.AddItem v(i)
Next
<END>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -