VB裏有用的幾個函數

註釋:--------(1)------------
註釋:獲得指定ini文件中某個節下面的所有鍵值 TrueZq,,需要下面的API聲明
註釋:Private 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 arrClass() As String
註釋:arrClass = GetInfoSection("class", "d:/type.ini")

Public Function GetInfoSection(strSection As String, strIniFile As String) As String()
Dim strReturn As String * 32767
Dim strTmp As String
Dim nStart As Integer, nEnd As Integer, i As Integer
Dim sArray() As String

Call GetPrivateProfileSection(strSection, strReturn, Len(strReturn), strIniFile)

strTmp = strReturn
i = 1
Do While strTmp <> ""
nStart = nEnd + 1
nEnd = InStr(nStart, strReturn, vbNullChar)
strTmp = Mid$(strReturn, nStart, nEnd - nStart)
If Len(strTmp) > 0 Then
ReDim Preserve sArray(1 To i)
sArray(i) = strTmp
i = i + 1
End If

Loop
GetInfoSection = sArray
End Function

註釋:--------(2)------------
註釋:作用:去掉字符串中的首尾空格、所有無效字符
註釋:測試用例
註釋:Dim strRes As String
註釋:Dim strSour As String
註釋:
註釋:strSour = " " & vbNullChar & vbNullChar & " ab cd" & vbNullChar
註釋:strRes = zqTrim(strSour)
註釋:MsgBox " 長度=" & Len(strSour) & "值=111" & strRes & "222"
Public Function zqTrim(ByVal strSour As String) As String
Dim strTmp As String
Dim nLen As Integer
Dim i As Integer, j As Integer
Dim strNow As String, strValid() As String, strNew As String
註釋:strNow 當前字符
註釋:strValid 有效字符
註釋:strNew 最後生成的新字符

strTmp = Trim$(strSour)
nLen = Len(strTmp)
If nLen < 1 Then
zqTrim = ""
Exit Function
End If
j = 0
For i = 1 To nLen
strNow = Mid(strTmp, i, 1) 註釋:每次讀取一個字符
註釋:MsgBox Asc(strNow)
If strNow <> vbNullChar And Asc(strNow) <> 9 Then 註釋:如果有效,則存入有效數組
ReDim Preserve strValid(j)
strValid(j) = strNow
j = j + 1
End If

Next i

strNew = Join(strValid, "") 註釋:將所有有效字符連接起來
zqTrim = Trim$(strNew) 註釋:去掉字符串中的首尾空格
End Function

註釋:--------(3)------------
註釋:檢查文件是否存在,存在返回 TRUE,否則返回FALSE
Public Function CheckFileExist(strFile As String) As Boolean

If Dir(strFile, vbDirectory) <> "" Then
CheckFileExist = True
Else
CheckFileExist = False
End If
End Function

註釋:--------(4)------------
註釋:獲得指定ini文件中某個節下面某個子鍵的鍵值,需要下面的API聲明
註釋:Public 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
註釋:返回一個字符串
註釋:調用舉例:
註釋:Dim strRun As String
註釋:strRun = GetiniValue("Windows","Run", "C:/Windows/Win.ini")

Public Function GetiniValue(ByVal lpKeyName As String, ByVal strName As String, ByVal strIniFile As String) As String
Dim strTmp As String * 255

Call GetPrivateProfileString(lpKeyName, strName, "", _
strTmp, Len(strTmp), strIniFile)
GetiniValue = Left$(strTmp, InStr(strTmp, vbNullChar) - 1)

End Function

註釋:--------(5)------------
註釋:獲得Windows目錄 ,需要下面的API聲明
註釋:Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
註釋:返回一個字符串,如“C:/Windows”、“C:/Winnt”
註釋:調用舉例:
註釋:Dim strWindir As String
註釋:strWindir = GetWinDir()
Private Function GetWinDir()
Dim windir As String * 100
Call GetWindowsDirectory(windir, 100)
GetWinDir = Left$(windir, InStr(windir, vbNullChar) - 1)

End Function

註釋:--------(6)------------
註釋:獲得Windows系統目錄,需要下面的API聲明
註釋:Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
註釋:返回一個字符串,如“C:/Windows/System”、“C:/Winnt/System32”
註釋:調用舉例:
註釋:Dim strSysDir As String
註釋:strSysDir = GetSystemDir()
Private Function GetSystemDir()
Dim strSysDir As String * 100
Call GetSystemDirectory(strSysDir, 100)
GetSystemDir = Left$(strSysDir, InStr(strSysDir, vbNullChar) - 1)

End Function

發佈了47 篇原創文章 · 獲贊 1 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章