ここではWin32APIを使ってINIファイルを読み込む方法について紹介します。
INIファイルを作成する
検証用に以下のINIファイルを用意します。ファイル名は test.ini とします。
[SECTION1]
KEY1 = value1_1
KEY2 = value1_2
[SECTION2]
KEY1 = value2_1
KEY2 = value2_2
INIファイルの読み込む
次のサンプルプログラムでは、フォームのボタンをクリックしたら、INIファイル(test.ini)を読み込み、セクション「SECTION1」のキー「KEY1」の値を取得して表示します。
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Form1
<DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)>
Public Shared Function GetPrivateProfileString(
ByVal lpAppName As String,
ByVal lpKeyName As String,
ByVal lpDefault As String,
ByVal lpReturnedString As StringBuilder,
ByVal nSize As Integer,
ByVal lpFileName As String) As Integer
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sb As StringBuilder = New StringBuilder()
Dim fileName = "C:\temp\test.ini"
GetPrivateProfileString("SECTION1", "KEY1", "エラー", sb, 1024, fileName)
MessageBox.Show(sb.ToString)
End Sub
End Class
5 ~ 13行目で DllImport属性(System.Runtime.InteropServices名前空間)を利用して、KERNEL32.DLL の中にある GetPrivateProfileString関数を宣言しています。
19行目で GetPrivateProfileString関数を使ってINIファイルの値を取得しています。取得できなかった場合は「エラー」と表示します。
以下は GetPrivateProfileString関数の引数の説明です。
引数 | 説明 |
---|---|
lpAppName | INIファイル内のセクション名 |
lpKeyName | セクション内のキー名 |
lpDefault | キーが見つからない時のデフォルト値 |
lpReturnedString | 取得した値を格納する変数 |
nSize | lpReturnedStringが指すバッファのサイズ |
lpFileName | INIファイルのパス |
以上、Win32APIを使ってINIファイルを読み込む方法について解説しました。