![]() ![]() |
|
VB下几个非常有用的函数 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:44:28 文章录入:杜斌 责任编辑:杜斌 | |
|
|
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 |
|
![]() ![]() |