iniファイルに値を書き込むコードはこちらの記事を参照してください。
GetPrivateProfileString()
関数を利用します。[Data]
Name=Penguin
ID=12
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace IniFileReadDemo
{
public partial class FormMain : Form
{
[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileStringW", CharSet = CharSet.Unicode, SetLastError = true)]
static extern uint GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName);
public FormMain()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
int capacitySize = 256;
StringBuilder sb = new StringBuilder(capacitySize);
uint ret = GetPrivateProfileString("Data", "Name", "none", sb, Convert.ToUInt32(sb.Capacity), ".\\file.ini");
if (0 < ret){
textBox1.Text += "Name:" + sb.ToString() + "\r\n";
}
sb = new StringBuilder(capacitySize);
ret = GetPrivateProfileString("Data", "ID", "none", sb, Convert.ToUInt32(sb.Capacity), ".\\file.ini");
if (0 < ret) {
textBox1.Text += "ID:" +sb.ToString() + "\r\n";
}
}
}
}
using System.Runtime.InteropServices;
[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileStringW", CharSet = CharSet.Unicode, SetLastError = true)]
static extern uint GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName);
int capacitySize = 256;
StringBuilder sb = new StringBuilder(capacitySize);
uint ret = GetPrivateProfileString("Data", "Name", "none", sb, Convert.ToUInt32(sb.Capacity), ".\\file.ini");
if (0 < ret){
textBox1.Text += "Name:" + sb.ToString() + "\r\n";
}
sb = new StringBuilder(capacitySize);
ret = GetPrivateProfileString("Data", "ID", "none", sb, Convert.ToUInt32(sb.Capacity), ".\\file.ini");
if (0 < ret) {
textBox1.Text += "ID:" +sb.ToString() + "\r\n";
}
AppDomain.CurrentDomain.BaseDirectory
を利用する記述法でも動作します。 uint ret = GetPrivateProfileString("Data", "Name", "none", sb, Convert.ToUInt32(sb.Capacity), AppDomain.CurrentDomain.BaseDirectory + "file.ini");