' inifile.vb Imports System Imports System.Text Imports System.IO Class IniFileHandler Declare Function GetPrivateProfileString Lib "KERNEL32.DLL" Alias "GetPrivateProfileStringA" ( _ 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 Declare Function GetPrivateProfileStringByByteArray Lib "KERNEL32.DLL" Alias "GetPrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, ByVal lpDefault As String, _ ByVal lpReturnedString As Byte(), ByVal nSize As Integer, _ ByVal lpFileName As String) As Integer Declare Function GetPrivateProfileInt Lib "KERNEL32.DLL" Alias "GetPrivateProfileIntA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, ByVal nDefault As Integer, _ ByVal lpFileName As String) As Integer Declare Function WritePrivateProfileString Lib "KERNEL32.DLL" Alias "WritePrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Integer End Class Module Module1 Sub Main() ' キーと値を書き加える IniFileHandler.WritePrivateProfileString("アプリ1", "キー1", "ハロー", "c:\sample.ini") IniFileHandler.WritePrivateProfileString("アプリ1", "キー2", "1234", "c:\sample.ini") IniFileHandler.WritePrivateProfileString("アプリ2", "キー1", "good morning", "c:\sample.ini") ' 文字列を読み出す Dim sb As StringBuilder = New StringBuilder(1024) IniFileHandler.GetPrivateProfileString("アプリ1", "キー1", "default", sb, sb.Capacity, "c:\sample.ini") Console.WriteLine("アプリ1セクションに含まれるキーキー1の値: {0}", sb.ToString()) ' 整数値を読み出す Dim resultValue As Integer = IniFileHandler.GetPrivateProfileInt("アプリ1", "キー2", 0, "c:\sample.ini") Console.WriteLine("アプリ1セクションに含まれるキーキー2の値: {0}", resultValue) ' 指定セクションのキーの一覧を得る Dim ar1(1024) As Byte Dim resultSize1 As Integer = IniFileHandler.GetPrivateProfileStringByByteArray( _ "アプリ1", Nothing, "default", _ ar1, ar1.Length, "c:\sample.ini") Dim result1 As String = System.Text.Encoding.Default.GetString(ar1, 0, resultSize1 - 1) Dim keys As String() = result1.Split(Microsoft.VisualBasic.Chr(0)) Dim key As String For Each key In keys Console.WriteLine("アプリ1セクションに含まれるキー名: {0}", key) Next ' 指定ファイルのセクションの一覧を得る Dim ar2(1024) As Byte Dim resultSize2 As Integer = IniFileHandler.GetPrivateProfileStringByByteArray( _ Nothing, Nothing, "default", _ ar2, ar2.Length, "c:\sample.ini") Dim result2 As String = System.Text.Encoding.Default.GetString(ar2, 0, resultSize2 - 1) Dim sections As String() = result2.Split(Microsoft.VisualBasic.Chr(0)) Dim section As String For Each section In sections Console.WriteLine("このファイルに含まれるセクション名: {0}", section) Next ' 1つのキーと値のペアを削除する IniFileHandler.WritePrivateProfileString("アプリ2", "キー1", Nothing, "c:\sample.ini") ' 指定セクション内の全てのキーと値のペアを削除する IniFileHandler.WritePrivateProfileString("アプリ1", Nothing, Nothing, "c:\sample.ini") End Sub End Module ' コンパイル方法:vbc inifile.vb