【VB.NET】INIファイルで設定した内容を読込む方法

ini-summne
スポンサーリンク

どうも、あおです。

 

 

INIファイルに設定した内容を読込みたいときのメモ。

 

 

 

INIファイルサンプル

vb-ini-read-1

 

 

 

 

 

 

■手順

①プロジェクトフォルダにINIファイル(拡張子.ini)を保存

 

②Visual Studioのソリューションエクスプローラーの

プロジェクトを右クリックして、追加→既存の項目を押下、

対象のINIファイルを追加する。

 

③ソリューションエクスプローラーで追加したINIファイルを

右クリックして、プロパティを押下。

出力ディレクトリにコピーで「新しい場合はコピーする」を選択。

(これをしておかないと、INIファイルの内容が取得できない!と

なることがあります。)

 

④以下のように読込み用コードを書く。

(今回は、画面起動時にINIファイルの内容を変数にセットしています。)

Imports System.Runtime.InteropServices

Public Class TestVB

    'INIファイルの場所
    Private Const INI_PATH As String = ".\\TestVB.ini"

    Private strTmp1 As String = String.Empty
    Private strTmp2 As String = String.Empty
    Private strTmp3 As String = String.Empty
    Private strOutFolder As String = String.Empty

    <DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)>
    Private Shared Function GetPrivateProfileString(
        ByVal lpAppName As String,                                  'セクション名
        ByVal lpKeyName As String,                                  'キー名
        ByVal lpdefault As String,                                  'キーがない場合のデフォルト値
        ByVal lpRetuenedString As System.Text.StringBuilder,        '取得文字列格納
        ByVal nSize As Integer,                                     '取得文字列サイズ
        ByVal lpFileName As String) As Integer                      'INIファイル
    End Function

    Private Sub TestVB_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        strTmp1 = GetIniString("FILE", "TMP1")
        strTmp2 = GetIniString("FILE", "TMP2")
        strTmp3 = GetIniString("FILE", "TMP3")
        strOutFolder = GetIniString("FOLDER", "OUT")

    End Sub

    Private Function GetIniString(ByVal lpAppName As String, ByVal lpKeyName As String) As String

        Dim intBuffSize As Integer = 256
        Dim str As New System.Text.StringBuilder(intBuffSize)

        Try
            Call GetPrivateProfileString(lpAppName, lpKeyName, str.ToString, str, str.Capacity, INI_PATH)
            Return str.ToString

        Catch ex As Exception
            Return str.ToString
        End Try

    End Function

End Class