home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 6_2008-2009.ISO / data / zips / SearchMySt2118966302008.psc / cIni.cls < prev    next >
Text File  |  2008-06-29  |  3KB  |  109 lines

  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 = "cIni"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16. Private mPath As String
  17. Private mKey As String
  18. Private mSection As String
  19. Private mDefault As String
  20.  
  21. ' Profile String functions:
  22. 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
  23. Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As Any, ByVal lpKeyName As Any, ByVal lpDefault As Any, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  24. Property Let Default(sDefault As String)
  25.  mDefault = sDefault
  26. End Property
  27. Property Get Default() As String
  28.  Default = mDefault
  29. End Property
  30. Property Let Path(sPath As String)
  31.  mPath = sPath
  32. End Property
  33. Property Get Path() As String
  34.  Path = mPath
  35. End Property
  36. Property Let Key(sKey As String)
  37.  mKey = sKey
  38. End Property
  39. Property Get Key() As String
  40.  Key = mKey
  41. End Property
  42. Property Let Section(sSection As String)
  43.  mSection = sSection
  44. End Property
  45. Property Get Section() As String
  46.  Section = mSection
  47. End Property
  48. Property Get Value() As String
  49.  Dim sBuf As String * 255
  50.  Dim RetLen As Long
  51.  RetLen = GetPrivateProfileString(mSection, mKey, mDefault, sBuf, &O255, mPath)
  52.  Value = Left$(sBuf, RetLen)
  53. End Property
  54. Property Let Value(sValue As String)
  55.  sValue = Replace$(sValue, vbNullChar, vbNullString)
  56.  WritePrivateProfileString mSection, mKey, sValue, mPath
  57. End Property
  58. Public Sub DeleteKey()
  59.  WritePrivateProfileString mSection, mKey, 0&, mPath
  60. End Sub
  61. Public Sub DeleteSection()
  62.  WritePrivateProfileString mSection, 0&, 0&, mPath
  63. End Sub
  64. Private Property Get INISection() As String
  65.  Dim sBuf As String * 8192
  66.  Dim RetLen As Long
  67.  RetLen = GetPrivateProfileString(mSection, 0&, mDefault, sBuf, 8192&, mPath)
  68.  INISection = Left$(sBuf, RetLen - 1)
  69. End Property
  70. Private Property Get Sections() As String
  71.  Dim sBuf As String * 8192
  72.  Dim RetLen As Long
  73.  RetLen = GetPrivateProfileString(0&, 0&, mDefault, sBuf, 8192&, mPath)
  74.  Sections = Left$(sBuf, RetLen - 1)
  75. End Property
  76. Public Sub EnumerateCurrentSection(ByRef sKey() As String, ByRef Count As Long)
  77.  Dim Tmp() As String
  78.  Dim sSection As String
  79.  Dim i As Long
  80.  Count = 0
  81.  Erase sKey
  82.  sSection = INISection
  83.  If Len(sSection) Then
  84.   Tmp = Split(sSection, vbNullChar)
  85.   Count = UBound(Tmp) + 1
  86.   ReDim sKey(1 To Count)
  87.   For i = 0 To UBound(Tmp)
  88.    sKey(i + 1) = Tmp(i)
  89.   Next
  90.  End If
  91. End Sub
  92. Public Sub EnumerateAllSections(ByRef sSections() As String, ByRef Count As Long)
  93.  Dim sIniFile As String
  94.  Dim i As Long
  95.  Dim Tmp() As String
  96.  Count = 0
  97.  Erase sSections
  98.  sIniFile = Sections
  99.  If Len(sIniFile) Then
  100.   Tmp = Split(sIniFile, vbNullChar)
  101.   Count = UBound(Tmp) + 1
  102.   ReDim sSections(1 To Count)
  103.   For i = 0 To UBound(Tmp)
  104.    sSections(i + 1) = Tmp(i)
  105.   Next
  106.  End If
  107. End Sub
  108.  
  109.