tlxIni.vb
上传用户:szledliu
上传日期:2021-01-29
资源大小:13805k
文件大小:4k
源码类别:

C#编程

开发平台:

C#

  1. Imports System.IO
  2. Imports System.Collections
  3. Imports Microsoft.VisualBasic
  4. Imports System.Xml
  5. Imports System.text
  6. Imports System.Windows.Forms
  7. '/// Usage ///
  8. 'Dim oFav As New FavFile("c:somefile.ext")
  9. 'oFav.WriteString("Settings", "ClockTime", "12:59")
  10. 'Dim strData As String = _
  11. '    oFav.GetString("Settings", "ClockTime", "(none)")
  12. Public Class tlxIni
  13.     ' API functions
  14.     Private Declare Ansi Function GetPrivateProfileString _
  15.       Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _
  16.       (ByVal lpApplicationName As String, _
  17.       ByVal lpKeyName As String, ByVal lpDefault As String, _
  18.       ByVal lpReturnedString As System.Text.StringBuilder, _
  19.       ByVal nSize As Integer, ByVal lpFileName As String) _
  20.       As Integer
  21.     Private Declare Ansi Function WritePrivateProfileString _
  22.       Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
  23.       (ByVal lpApplicationName As String, _
  24.       ByVal lpKeyName As String, ByVal lpString As String, _
  25.       ByVal lpFileName As String) As Integer
  26.     Private Declare Ansi Function GetPrivateProfileInt _
  27.       Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _
  28.       (ByVal lpApplicationName As String, _
  29.       ByVal lpKeyName As String, ByVal nDefault As Integer, _
  30.       ByVal lpFileName As String) As Integer
  31.     Private Declare Ansi Function FlushPrivateProfileString _
  32.       Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
  33.       (ByVal lpApplicationName As Integer, _
  34.       ByVal lpKeyName As Integer, ByVal lpString As Integer, _
  35.       ByVal lpFileName As String) As Integer
  36.     Dim strFilename As String
  37.     Enum Sections
  38.         [DEFAULT]
  39.         InternetShortcut
  40.     End Enum
  41.     Enum Keys
  42.         BASEURL
  43.         ICON
  44.         URL
  45.     End Enum
  46.     ' Constructor, accepting a filename
  47.     Public Sub New(ByVal Filename As String)
  48.         strFilename = Filename
  49.     End Sub
  50.     ' Read-only filename property
  51.     ReadOnly Property FileName() As String
  52.         Get
  53.             Return strFilename
  54.         End Get
  55.     End Property
  56.     Public Function GetString(ByVal Section As String, _
  57.       ByVal Key As String, ByVal [Default] As String) As String
  58.         Dim ret As String = String.Empty
  59.         Try
  60.             Dim intCharCount As Integer
  61.             Dim objResult As New System.Text.StringBuilder(256)
  62.             intCharCount = GetPrivateProfileString(Section, Key, _
  63.                [Default], objResult, objResult.Capacity, strFilename)
  64.             If intCharCount > 0 Then ret = _
  65.                Left(objResult.ToString, intCharCount)
  66.             Return ret
  67.         Catch ex As Exception
  68.             Return ex.Message.ToString
  69.         End Try
  70.     End Function
  71.     Public Function GetInteger(ByVal Section As String, _
  72.       ByVal Key As String, ByVal [Default] As Integer) As Integer
  73.         ' Returns an integer from your INI file
  74.         Return GetPrivateProfileInt(Section, Key, _
  75.            [Default], strFilename)
  76.     End Function
  77.     Public Function GetBoolean(ByVal Section As String, _
  78.       ByVal Key As String, ByVal [Default] As Boolean) As Boolean
  79.         ' Returns a boolean from your INI file
  80.         Return (GetPrivateProfileInt(Section, Key, _
  81.            CInt([Default]), strFilename) = 1)
  82.     End Function
  83.     Public Sub WriteString(ByVal Section As String, _
  84.       ByVal Key As String, ByVal Value As String)
  85.         ' Writes a string to your INI file
  86.         WritePrivateProfileString(Section, Key, Value, strFilename)
  87.         Flush()
  88.     End Sub
  89.     Public Sub WriteInteger(ByVal Section As String, _
  90.       ByVal Key As String, ByVal Value As Integer)
  91.         ' Writes an integer to your INI file
  92.         WriteString(Section, Key, CStr(Value))
  93.         Flush()
  94.     End Sub
  95.     Public Sub WriteBoolean(ByVal Section As String, _
  96.       ByVal Key As String, ByVal Value As Boolean)
  97.         ' Writes a boolean to your INI file
  98.         WriteString(Section, Key, CStr(CInt(Value)))
  99.         Flush()
  100.     End Sub
  101.     Private Sub Flush()
  102.         ' Stores all the cached changes to your INI file
  103.         FlushPrivateProfileString(0, 0, 0, strFilename)
  104.     End Sub
  105. End Class