VB下几个非常有用的函数

日期: 2008-06-10 来源:TechTarget中国

  ′————————(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:WindowsWin.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:WindowsSystem”、“C:WinntSystem32”
  ′调用举例:
  ′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)

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • SQL Server 2012 T-SQL指南

    在本次的TechTarget《数据库电子书》中,我们将研究许多T-SQL新功能,并通过一些例子来展示它们如何使用。

  • Redis 2.6 Lua脚本功能实现分析

    Redis脚本功能的实现代码放在源码的src/scripting.c 文件中,主要分为三部分:Lua嵌入Redis;EVAL和EVALSHA命令的实现;SCRIPT命令的实现。

  • 为MySQL数据库增加线程内存监控

    使用MySQL中我经常发现mysqld的内存使用会涨的很快(Buffer Pool是大页分配的),以至于使用SWAP,到底Server层用了多少内存,没有一个监控机制。

  • CouchDB让人头痛的十大问题

    NoSQL技术爱好者在使用CouchDB的过程中,发现很多不顺手的地方,本文就将对CouchDB十大令人头痛的问题进行一个总结。