VB下幾個非常有用的函數

來源:互聯網
上載者:User

'————————(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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.