C#中沒有讀寫ini檔案的類,但用API函數很容易實現.
表單代碼如下:
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 IniFileDemo
{
public partial class Form1 : Form
{
/**//**//**//// <summary>
/// 讀ini檔案檔案API函式宣告
/// </summary>
/// <param name="section">小節名</param>
/// <param name="key">關鍵字</param>
/// <param name="def">如果沒找到時的預設值</param>
/// <param name="retVal">存放傳回值的緩衝區</param>
/// <param name="size">緩衝區大小</param>
/// <param name="filePath">要讀取的ini檔案的路徑</param>
/// <returns>返回讀取到的字元數</returns>
[DllImport("kernel32")]
private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/**//**//**//// <summary>
/// 寫ini檔案API函式宣告
/// </summary>
/// <param name="section">小節名</param>
/// <param name="key">關鍵字</param>
/// <param name="val">要寫入的值</param>
/// <param name="filePath">要寫入的ini檔案的路徑</param>
/// <returns>返回寫入的字元數</returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
public Form1()
{
InitializeComponent();
}
/**//**//**//// <summary>
/// 從ini檔案讀取值並應用到表單的Width,Height屬性
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
StringBuilder myBuilder=new StringBuilder(256);
GetPrivateProfileString("settings", "width", "300", myBuilder, 256, ".app.ini");
Width = Int32.Parse(myBuilder.ToString());
textBox1.Text = Width.ToString();
GetPrivateProfileString("settings", "height", "300", myBuilder, 256, ".app.ini");
Height = Int32.Parse(myBuilder.ToString());
textBox2.Text = Height.ToString();
}
/**//**//**//// <summary>
/// 將自訂的值寫入ini檔案
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
Width = Int32.Parse(textBox1.Text);
Height = Int32.Parse(textBox2.Text);
WritePrivateProfileString("settings", "width", textBox1.Text, ".app.ini");
WritePrivateProfileString("settings", "height", textBox2.Text, ".app.ini");
}
}
}