INIFile.cls
上传用户:davilee3
上传日期:2015-04-22
资源大小:986k
文件大小:5k
源码类别:

浏览器

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cINIFile"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. '---------------------------------------------------------------------------------------
  15. ' Module    : cINIFile
  16. ' DateTime  : 2005-3-19 20:17
  17. ' Author    : Lingll
  18. ' Purpose   :
  19. '---------------------------------------------------------------------------------------
  20. '2005-3-19 添加函数ReadSection,ReadSection2,ReadInt
  21. Option Explicit
  22. Private Declare Function GetPrivateProfileSection Lib "kernel32.dll" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As Long, ByVal nSize As Long, ByVal lpFileName As String) As Long
  23. Private Declare Function GetPrivateProfileInt Lib "kernel32.dll" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
  24. Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As Long, ByVal nSize As Long, ByVal lpFileName As String) As Long
  25. Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
  26. Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
  27. Public IniFile As String
  28. Public bffSize As Long
  29. Public Function ReadInt(SectionName$, KeyName$, Optional nDefault& = 0) As Long
  30. ReadInt = GetPrivateProfileInt(SectionName, KeyName, nDefault, IniFile)
  31. End Function
  32. Public Function ReadSection(SectionName$) As String
  33. Dim tBff() As Byte
  34. Dim tLen As Long
  35. tLen = FileLen(IniFile)
  36. If tLen > 0 Then
  37.     ReDim tBff(0 To tLen - 1)
  38.     tLen = GetPrivateProfileSection(SectionName, VarPtr(tBff(0)), tLen, IniFile)
  39.     If tLen > 1 Then
  40.         ReDim Preserve tBff(0 To tLen - 2)
  41.         ReadSection = Replace$(StrConv(tBff, vbUnicode), vbNullChar, vbNewLine)
  42.     End If
  43. End If
  44. End Function
  45. Public Function ReadSection2(SectionName$, ptArr&, nSize&) As Long
  46. ReadSection2 = GetPrivateProfileSection(SectionName, ptArr, nSize, IniFile)
  47. End Function
  48. Public Function ReadKey(SectionName As String, _
  49.     KeyName As String, Optional DefaultVal As String = vbNullString, _
  50.     Optional IniName As String = vbNullString) As String
  51.   
  52.     Dim tBff() As Byte
  53. '    Dim tmpPos As Integer
  54.     Dim tBffLen&, tIniFile$
  55.     If LenB(IniName) <> 0 Then
  56.         tIniFile = IniName
  57.     Else
  58.         tIniFile = IniFile
  59.     End If
  60.     
  61.     ReDim tBff(0 To bffSize - 1)
  62.     tBffLen = GetPrivateProfileString(SectionName, KeyName, _
  63.         DefaultVal, VarPtr(tBff(0)), bffSize, tIniFile)
  64.     If tBffLen > 0 Then
  65.         ReDim Preserve tBff(0 To tBffLen - 1)
  66.         ReadKey = StrConv(tBff, vbUnicode)
  67.     Else
  68.         ReadKey = vbNullString '""
  69.     End If
  70. End Function
  71. Public Function WriteKey(SectionName As String, KeyName As String, _
  72.     nKey As String, Optional IniName As String = vbNullString) As Boolean
  73.     
  74.     Dim rtn&
  75.     Dim tIniFile$
  76.     If LenB(IniName) <> 0 Then
  77.         tIniFile = IniName
  78.     Else
  79.         tIniFile = IniFile
  80.     End If
  81.     
  82.     rtn = WritePrivateProfileString(SectionName, _
  83.         KeyName, nKey, tIniFile)
  84.     If rtn <> 0 Then
  85.         WriteKey = True
  86.     Else
  87.         WriteKey = False
  88.     End If
  89. End Function
  90. Public Function DeleteKey(SectionName As String, KeyName As String, _
  91.     Optional IniName As String = vbNullString) As Boolean
  92.     
  93.     Dim rtn&
  94.     Dim tIniFile$
  95.     If LenB(IniName) <> 0 Then
  96.         tIniFile = IniName
  97.     Else
  98.         tIniFile = IniFile
  99.     End If
  100.     
  101.     rtn = WritePrivateProfileString(SectionName, _
  102.         KeyName, 0&, tIniFile)
  103.     If rtn <> 0 Then
  104.         DeleteKey = True
  105.     Else
  106.         DeleteKey = False
  107.     End If
  108. End Function
  109. Public Function DeleteSection(SectionName As String, _
  110.     Optional IniName As String = vbNullString) As Boolean
  111.     
  112.     Dim rtn&
  113.     Dim tIniFile$
  114.     If LenB(IniName) <> 0 Then
  115.         tIniFile = IniName
  116.     Else
  117.         tIniFile = IniFile
  118.     End If
  119.     
  120.     rtn = WritePrivateProfileString(SectionName, _
  121.         0&, 0&, tIniFile)
  122.     If rtn <> 0 Then
  123.         DeleteSection = True
  124.     Else
  125.         DeleteSection = False
  126.     End If
  127. End Function
  128. Private Sub Class_Initialize()
  129. IniFile = vbNullString '""
  130. bffSize = &H400& ' 256
  131. End Sub