using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Linq; using System.Text; using System.Threading.Tasks; namespace KssSmaPlaLib.Ini { public static class IniHelper { private const string INI_PATH = @".\Settings.ini"; // Win32 API宣言 [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] private static extern int GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName); [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] private static extern bool WritePrivateProfileString( string lpAppName, string lpKeyName, string lpString, string lpFileName); /// /// INIファイルから値を読み込み(セクション+キー指定) /// public static string ReadValue(string? iniPath, string section, string key, string defaultValue = "") { if (string.IsNullOrEmpty(iniPath)) iniPath = INI_PATH; var sb = new StringBuilder(1024); GetPrivateProfileString(section, key, defaultValue, sb, sb.Capacity, iniPath); var str = sb.ToString(); str = string.IsNullOrEmpty(str) ? defaultValue : str; return str; } /// /// INIファイルに値を書き込み(セクション+キー+値指定) /// public static bool WriteValue(string iniPath, string section, string key, string value) { if (string.IsNullOrEmpty(iniPath)) iniPath = INI_PATH; return WritePrivateProfileString(section, key, value, iniPath); } } }