INIファイル
宣言
// ****************************************************************
// インポートするクラス
// ****************************************************************
using System.Runtime.InteropServices;
// ****************************************************************
// Windows API 読み込み
// ****************************************************************
// INIファイル関数
[DllImport("KERNEL32.DLL")]
public static extern uint
GetPrivateProfileString(string lpAppName,
string lpKeyName, string lpDefault,
StringBuilder lpReturnedString, uint nSize,
string lpFileName);
[DllImport("KERNEL32.DLL",
EntryPoint = "GetPrivateProfileString")]
public static extern uint
GetPrivateProfileStringByByteArray(string lpAppName,
string lpKeyName,
string lpDefault,
byte[] lpReturnedString,
uint nSize,
string lpFileName);
[DllImport("KERNEL32.DLL")]
public static extern uint
GetPrivateProfileInt(string lpAppName,
string lpKeyName, int nDefault, string lpFileName);
[DllImport("KERNEL32.DLL")]
public static extern uint WritePrivateProfileString(
string lpAppName,
string lpKeyName,
string lpString,
string lpFileName);
書込み
WritePrivateProfileString("セッション名", "キー名", "書込む値", "INIファイルパス");
読込み
// 特定のセッションのキー一覧
byte[] ByteArray = new byte[1024];
uint resultSize = GetPrivateProfileStringByByteArray("セッション名", null, "", ByteArray, (uint)ByteArray.Length, "INIファイルパス");
if (resultSize != 0)
{
string result = Encoding.Default.GetString(ByteArray, 0, (int)resultSize - 1);
string[] keys = result.Split('\0');
foreach (string key in keys)
{
Console.WriteLine(key);
}
}
// 文字列
StringBuilder sb = new StringBuilder(1024);
GetPrivateProfileString("セッション名", "キー名", "既定値", sb, (uint)sb.Capacity, "INIファイルパス");
Console.WriteLine(sb.ToString());
// 数値
Console.WriteLine(GetPrivateProfileInt("セッション名", "キー名", 0, "INIファイルパス"));