VB.Net で ini ファイルを操作する

Windowsアプリケーションの設定情報の保存方法としては,すでに過去のものになった感もあるiniファイルですが,意外な場面で必要になったりもします。

.Net ではiniファイルを直接扱うことができないため,アクセスを行うコードを書く必要がありますが,WIN32APIを使って結構簡単に実装できます。

具体的なコード例を VB.Net で書いてみます。まずは使用する WIN32API を DllImport 宣言します。
<dllimport("kernel32.dll", CharSet:=CharSet.Auto)> _
Protected Shared Function GetPrivateProfileString( _
ByVal sectionName As String, _
ByVal keyName As String, _
ByVal defaultValue As String, _
ByVal returnValue As StringBuilder, _
ByVal bufferSize As Integer, _
ByVal fileName As String) As Integer
End Function

<dllimport("kernel32.dll")> _
Protected Shared Function WritePrivateProfileString( _
ByVal sectionName As String, _
ByVal keyName As String, _
ByVal strValue As String, _
ByVal fileName As String) As Integer
End Function

後はごく普通に呼び出すだけでOKです。

デフォルトプロパティを使用して操作するクラスを作ると,連想配列的に参照・更新ができて,プログラムがシンプルになります。
Public class IniFileHandler

Private fileName As String

Public Sub New(ByRef fileName as String)
Me.fileName = fileName
End Sub

<dllimport("kernel32.dll", CharSet:=CharSet.Auto)> _
Protected Shared Function GetPrivateProfileString( _
ByVal sectionName As String, _
ByVal keyName As String, _
ByVal defaultValue As String, _
ByVal returnValue As StringBuilder, _
ByVal bufferSize As Integer, _
ByVal fileName As String) As Integer
End Function

<dllimport("kernel32.dll")> _
Protected Shared Function WritePrivateProfileString( _
ByVal sectionName As String, _
ByVal keyName As String, _
ByVal strValue As String, _
ByVal fileName As String) As Integer
End Function

Default Public Property Item(ByVal section As String, _
ByVal key As String) As String
Get
Return GetPrivateProfileString(section, key, Me.filename)
End Get
Set(ByVal value As String)
  WritePrivateProfileString(section, key, value, Me.fileName)
End Set
End Property

End Class

このクラスを使うときは,以下のようなコードになります。
Dim iniFile As IniFileHandler
iniFile = New IniFileHandler("testapp.ini")

iniFile("Section1", "key1") = "value1" '' WRITE
Dim sValue As String = iniFile("Section2", "key2") '' READ


タグ:VB.NET .net
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
rank← ランキングはこちらをクリック!

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。