专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » vc读写ini文件:VB.Net读写操作INI文件类 »正文

vc读写ini文件:VB.Net读写操作INI文件类

来源: 发布时间:星期四, 2009年1月15日 浏览:24次 评论:0
  例子代码如下:
Imports
Imports .Text
Imports .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 specyed 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 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 = .Text.Encoding.GetEncoding(1252).GetString(bRet, 0, i).TrimEnd(CType(ChrW(0), Char))
      Return sRet
    End Function
  End Class
End Namespace


相关文章

读者评论

发表评论

  • 昵称:
  • 内容: