iniファイルはテキストファイルなので
直接iniファイルを開いて自力で解析する方法もありますが
Win32APIの GetPrivateProfileString関数 をC#から呼び出す例です。
GetPrivateProfileString関数はKERNEL32.DLLの中にその実態があるので
DLLをインポートする宣言を行っています。
このコードを動かす場合は
実行ファイルが置かれているフォルダにhogehoge.iniファイルを作成し
[SECTION]
KEY=hogehoge
のような2行を記述して保存しておいてください。
Formに配置されたButtonを押すと内容が表示されます。
iniファイルは簡単な構成で
[]でセクション名を囲み、次のセクション名まで
キー名=値
が続きます。改行区切りです。
例:
[section_1]
data=hogehoge
length=128
[section_2]
data=hogehoge
length=128
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; // これが必要 namespace WindowsFormsApplication1 { public partial class Form1 : Form { // Win32APIの GetPrivateProfileString を使う宣言 [DllImport("KERNEL32.DLL")] public static extern uint GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // iniファイル名を決める(実行ファイルが置かれたフォルダと同じ場所) string iniFileName = AppDomain.CurrentDomain.BaseDirectory + "hogehoge.ini"; // iniファイルから文字列を取得 StringBuilder sb = new StringBuilder(1024); GetPrivateProfileString( "SECTION", // セクション名 "KEY", // キー名 "ありません", // 値が取得できなかった場合に返される初期値 sb, // 格納先 Convert.ToUInt32(sb.Capacity), // 格納先のキャパ iniFileName); // iniファイル名 MessageBox.Show(sb.ToString()); } } }
コメントを残す