C#對INI文件進行讀寫操作的示例代碼
1.通過調(diào)用API函數(shù)完成對INI文件的讀取,修改,寫入操作
string filePath;
private void btnModify_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath))
{
using (SaveFileDialog sfd=new SaveFileDialog())
{
sfd.Filter= "初始化文件(*.INI)|*.INI";
if (sfd.ShowDialog() == DialogResult.OK)
{
FileStream fs = System.IO.File.Create(sfd.FileName);
fs.Dispose();
filePath = sfd.FileName;
}
}
}
INIHelper.WriteToINI(filePath, "ConnectString", "Data Source", txtServer.Text);
INIHelper.WriteToINI(filePath, "ConnectString", "DataBase", txtDataBase.Text);
INIHelper.WriteToINI(filePath, "ConnectString", "Uid", txtSid.Text);
INIHelper.WriteToINI(filePath, "ConnectString", "Pwd", txtPwd.Text);
MessageBox.Show("保存成功!");
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
using(OpenFileDialog ofd=new OpenFileDialog())
{
ofd.Filter = "初始化文件(*.INI)|*.INI";
ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK)
{
filePath = ofd.FileName;
string source = INIHelper.ReadFromINI(filePath, "ConnectString", "Data Source");
string dataName= INIHelper.ReadFromINI(filePath, "ConnectString", "DataBase");
string uid= INIHelper.ReadFromINI(filePath, "ConnectString", "Uid", "未設(shè)置");
string pwd= INIHelper.ReadFromINI(filePath, "ConnectString", "Pwd","未設(shè)置");
txtServer.Text = source;
txtDataBase.Text = dataName;
txtSid.Text = uid;
txtPwd.Text = pwd;
}
}
}
}
/// <summary>
/// 對INI文件進行讀寫
/// </summary>
class INIHelper
{
/// <summary>
/// 從INI文件中讀取數(shù)據(jù)
/// </summary>
/// <param name="filePath">INI文件的全路徑</param>
/// <param name="rootValue">根節(jié)點值,例如根節(jié)點[ConnectString]的值為:ConnectString</param>
/// <param name="key">根節(jié)點下的鍵</param>
/// <param name="defValue">當(dāng)標(biāo)記值未設(shè)定或不存在時的默認(rèn)值</param>
/// <returns></returns>
public static string ReadFromINI(string filePath, string rootValue,string key,string defValue="")
{
StringBuilder sb = new StringBuilder(1024);
GetPrivateProfileString(rootValue, key, defValue, sb, 1024, filePath);
return sb.ToString();
}
public static void WriteToINI(string filePath, string rootValue, string key, string newVal)
{
WritePrivateProfileString(rootValue, key, newVal, filePath);
}
/// <summary>
/// 對INI文件進行讀取操作
/// </summary>
/// <param name="IpAppName">表示INI文件內(nèi)部根節(jié)點的值</param>
/// <param name="IpKeyName">表示根節(jié)點下子標(biāo)記的值</param>
/// <param name="IpDefault">表示當(dāng)標(biāo)記值未設(shè)定或不存在時的默認(rèn)值</param>
/// <param name="IpReturnString">返回讀取節(jié)點的值</param>
/// <param name="nSize">讀取的節(jié)點內(nèi)容的最大容量</param>
/// <param name="IpFileName">文件的全路徑</param>
/// <returns></returns>
[System.Runtime.InteropServices.DllImport("kernel32")]
static extern int GetPrivateProfileString(string IpAppName, string IpKeyName, string IpDefault, StringBuilder IpReturnString, int nSize, string IpFileName);
/// <summary>
/// 對INI文件進行寫入操作
/// </summary>
/// <param name="mpAppName">INI文件內(nèi)部根節(jié)點的值</param>
/// <param name="mpKeyName">將要修改的標(biāo)記名稱</param>
/// <param name="mpDefault">想要修改的內(nèi)容</param>
/// <param name="mpFileName">INI文件的全路徑</param>
/// <returns></returns>
[System.Runtime.InteropServices.DllImport("kernel32")]
static extern long WritePrivateProfileString(string mpAppName, string mpKeyName, string mpDefault, string mpFileName);
}
2,INI文件的擴展名為.ini 例如:System.ini 。
3,INI文件格式如下(使用記事本打開):
[ConnectString]
Data Source=192.168.1.97
DataBase=master
Uid=sa
Pwd=1
注解:
[ConnectString] :根節(jié)點,進行讀寫時首先需要知曉根節(jié)點值(例如 [ConnectString] 根節(jié)點值為:ConnectString)
DataBase:鍵,通過該鍵可獲取該鍵對應(yīng)的值,
到此這篇關(guān)于C#對INI文件進行讀寫操作的示例代碼的文章就介紹到這了,更多相關(guān)C#讀寫操作INI內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#面向?qū)ο笤O(shè)計原則之組合/聚合復(fù)用原則
這篇文章介紹了C#面向?qū)ο笤O(shè)計原則之組合/聚合復(fù)用原則,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
C#判斷一個類是否實現(xiàn)了某個接口3種實現(xiàn)方法
這篇文章主要介紹了C#判斷一個類是否實現(xiàn)了某個接口3種實現(xiàn)方法,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-06-06

