tlxIni.vb
上传用户:szledliu
上传日期:2021-01-29
资源大小:13805k
文件大小:4k
- Imports System.IO
- Imports System.Collections
- Imports Microsoft.VisualBasic
- Imports System.Xml
- Imports System.text
- Imports System.Windows.Forms
- '/// Usage ///
- 'Dim oFav As New FavFile("c:somefile.ext")
- 'oFav.WriteString("Settings", "ClockTime", "12:59")
- 'Dim strData As String = _
- ' oFav.GetString("Settings", "ClockTime", "(none)")
- Public Class tlxIni
- ' API functions
- Private Declare Ansi Function GetPrivateProfileString _
- Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _
- (ByVal lpApplicationName As String, _
- ByVal lpKeyName As String, ByVal lpDefault As String, _
- ByVal lpReturnedString As System.Text.StringBuilder, _
- ByVal nSize As Integer, ByVal lpFileName As String) _
- As Integer
- Private Declare Ansi Function WritePrivateProfileString _
- Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
- (ByVal lpApplicationName As String, _
- ByVal lpKeyName As String, ByVal lpString As String, _
- ByVal lpFileName As String) As Integer
- Private Declare Ansi Function GetPrivateProfileInt _
- Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _
- (ByVal lpApplicationName As String, _
- ByVal lpKeyName As String, ByVal nDefault As Integer, _
- ByVal lpFileName As String) As Integer
- Private Declare Ansi Function FlushPrivateProfileString _
- Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
- (ByVal lpApplicationName As Integer, _
- ByVal lpKeyName As Integer, ByVal lpString As Integer, _
- ByVal lpFileName As String) As Integer
- Dim strFilename As String
- Enum Sections
- [DEFAULT]
- InternetShortcut
- End Enum
- Enum Keys
- BASEURL
- ICON
- URL
- End Enum
- ' Constructor, accepting a filename
- Public Sub New(ByVal Filename As String)
- strFilename = Filename
- End Sub
- ' Read-only filename property
- ReadOnly Property FileName() As String
- Get
- Return strFilename
- End Get
- End Property
- Public Function GetString(ByVal Section As String, _
- ByVal Key As String, ByVal [Default] As String) As String
- Dim ret As String = String.Empty
- Try
- Dim intCharCount As Integer
- Dim objResult As New System.Text.StringBuilder(256)
- intCharCount = GetPrivateProfileString(Section, Key, _
- [Default], objResult, objResult.Capacity, strFilename)
- If intCharCount > 0 Then ret = _
- Left(objResult.ToString, intCharCount)
- Return ret
- Catch ex As Exception
- Return ex.Message.ToString
- End Try
- End Function
- Public Function GetInteger(ByVal Section As String, _
- ByVal Key As String, ByVal [Default] As Integer) As Integer
- ' Returns an integer from your INI file
- Return GetPrivateProfileInt(Section, Key, _
- [Default], strFilename)
- End Function
- Public Function GetBoolean(ByVal Section As String, _
- ByVal Key As String, ByVal [Default] As Boolean) As Boolean
- ' Returns a boolean from your INI file
- Return (GetPrivateProfileInt(Section, Key, _
- CInt([Default]), strFilename) = 1)
- End Function
- Public Sub WriteString(ByVal Section As String, _
- ByVal Key As String, ByVal Value As String)
- ' Writes a string to your INI file
- WritePrivateProfileString(Section, Key, Value, strFilename)
- Flush()
- End Sub
- Public Sub WriteInteger(ByVal Section As String, _
- ByVal Key As String, ByVal Value As Integer)
- ' Writes an integer to your INI file
- WriteString(Section, Key, CStr(Value))
- Flush()
- End Sub
- Public Sub WriteBoolean(ByVal Section As String, _
- ByVal Key As String, ByVal Value As Boolean)
- ' Writes a boolean to your INI file
- WriteString(Section, Key, CStr(CInt(Value)))
- Flush()
- End Sub
- Private Sub Flush()
- ' Stores all the cached changes to your INI file
- FlushPrivateProfileString(0, 0, 0, strFilename)
- End Sub
- End Class