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");
}
}
}
新聞熱點
疑難解答