辅导:VB.Net读写操作INI文件类
来源:优易学  2011-11-13 12:46:00   【优易学:中国教育考试门户网】   资料下载   IT书店
 实例代码如下:
  Imports System
  Imports System.Text
  Imports System.Runtime.InteropServices
  Namespace Lob_ini
  Public Class cIni
  Private ls_IniFilename As String
  Private li_BufferLen As Integer = 256
  ''' <summary>
  ''' cINI Constructor
  ''' </summary>
  Public Sub New(ByVal pIniFilename As String)
  MyBase.New()
  ls_IniFilename = pIniFilename
  End Sub
  ''' <summary>
  ''' INI filename (If no path is specifyed the function will look with-in the windows directory for the file)
  ''' </summary>
  Public Property IniFile() As String
  Get
  Return
  End Get
  Set(ByVal value As String)
  ls_IniFilename = value
  End Set
  End Property
  ''' <summary>
  ''' Max return length when reading data (Max: 32767)
  ''' </summary>
  Public Property BufferLen() As Integer
  Get
  Return li_BufferLen
  End Get
  Set(ByVal value As Integer)
  If (value > 32767) Then
  li_BufferLen = 32767
  ElseIf (value < 1) Then
  li_BufferLen = 1
  Else
  li_BufferLen = value
  End If
  End Set
  End Property
  Private Declare Function WritePrivateProfileStrin
  g Lib "kernel32" (ByVal pSection As String, ByVal pKey As String, ByVal pValue As String, ByVal pFile As String) As Integer
  Private Declare Function WritePrivateProfileStruc
  t Lib "kernel32" (ByVal pSection As String, ByVal pKey As String, ByVal pValue As String, ByVal pValueLen As Integer, ByVal pFile As String) As Integer
  Private Declare Function GetPrivateProfileString Lib "kernel32" (ByVal pSection As String, ByVal pKey As String, ByVal pDefault As String, ByVal prReturn() As Byte, ByVal pBufferLen As Integer, ByVal pFile As String) As Integer
  Private Declare Function GetPrivateProfileStruct Lib "kernel32" (ByVal pSection As String, ByVal pKey As String, ByVal prReturn() As Byte, ByVal pBufferLen As Integer, ByVal pFile As String) As Integer
  ''' <summary>
  ''' Read value from INI File
  ''' </summary>
  Public Overloads Function ReadValue(ByVal pSection As String, ByVal pKey As String, ByVal pDefault As String) As String
  Return z_GetString(pSection, pKey, pDefault)
  End Function
  ''' <summary>
  ''' Read value from INI File, default = ""
  ''' </summary>
  Public Overloads Function ReadValue(ByVal pSection As String, ByVal pKey As String) As String
  Return z_GetString(pSection, pKey, "")
  End Function
  ''' <summary>
  ''' Write value to INI File
  ''' </summary>
  Public Sub WriteValue(ByVal pSection As String, ByVal pKey As String, ByVal pValue As String)
  WritePrivateProfileStrin
  g(pSection, pKey, pValue, Me.ls_IniFilename)
  End Sub
  ''' <summary>
  ''' Remove value from INI File
  ''' </summary>
  Public Sub RemoveValue(ByVal pSection As String, ByVal pKey As String)
  WritePrivateProfileStrin
  g(pSection, pKey, Nothing, Me.ls_IniFilename)
  End Sub
  ''' <summary>
  ''' Read values in a section from INI File
  ''' </summary>
  Public Sub ReadValues(ByVal pSection As String, ByRef pValues As Array)
  pValues = z_GetString(pSection, Nothing, Nothing).Split(CType(ChrW(0), Char))
  End Sub
  ''' <summary>
  ''' Read sections from INI File
  ''' </summary>
  Public Sub ReadSections(ByRef pSections As Array)
  pSections = z_GetString(Nothing, Nothing, Nothing).Split(CType(ChrW(0), Char))
  End Sub
  ''' <summary>
  ''' Remove section from INI File
  ''' </summary>
  Public Sub RemoveSection(ByVal pSection As String)
  WritePrivateProfileStrin
  g(pSection, Nothing, Nothing, Me.ls_IniFilename)
  End Sub
  ''' <summary>
  ''' Call GetPrivateProfileString / GetPrivateProfileStruct API
  ''' </summary>
  Private Function z_GetString(ByVal pSection As String, ByVal pKey As String, ByVal pDefault As String) As String
  Dim sRet As String = pDefault
  Dim bRet() As Byte = New Byte((li_BufferLen) - 1) {}
  Dim i As Integer = GetPrivateProfileString(pSection, pKey, pDefault, bRet, li_BufferLen, ls_IniFilename)
  sRet = System.Text.Encoding.GetEncoding(1252).GetString(bRet, 0, i).TrimEnd(CType(ChrW(0), Char))
  Return sRet
  End Function
  End Class
  End Namespace

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训