ここでは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関数の引数の説明です。

引数説明
lpAppNameINIファイル内のセクション名
lpKeyNameセクション内のキー名
lpDefaultキーが見つからない時のデフォルト値
lpReturnedString取得した値を格納する変数
nSizelpReturnedStringが指すバッファのサイズ
lpFileNameINIファイルのパス


以上、Win32APIを使ってINIファイルを読み込む方法について解説しました。