用API对INI文件进行读写,这是一个完整的类
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
/* INI文件是文本文件,由若干节(section)组成,在每个带方括号的标题下面,
* 是若干个关键词(key)及其对应的值(Value)
* [Section]
* Key=Value
*/
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
/* INI文件是文本文件,由若干节(section)组成,在每个带方括号的标题下面,
* 是若干个关键词(key)及其对应的值(Value)
* [Section]
* Key=Value
*/
namespace ini
{
public class iniFies
{
{
public class iniFies
{
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
#region 字段与属性
private string _iniFileFullPath;
public string ls_iniFileFullPath
{
set { _iniFileFullPath = value; }
get { return _iniFileFullPath; }
}
#endregion
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
#region 字段与属性
private string _iniFileFullPath;
public string ls_iniFileFullPath
{
set { _iniFileFullPath = value; }
get { return _iniFileFullPath; }
}
#endregion
///
/// 写入数据到INI文件中
/// ini节点名称
/// iniKEY名称
/// 写入的值
///
public void Write(string iniSection, string iniKey, string iniValue)
{
WritePrivateProfileString(iniSection, iniKey, iniValue, this.ls_iniFileFullPath);
}
///
///从ini文件中读取数据
/// ini节点名称
/// iniKEY名称
///指定ini节点或iniKEY的值
///
public string Read(string iniSection, string iniKey)
{
StringBuilder resultValue = new StringBuilder(255);
int i = GetPrivateProfileString(iniSection, iniKey, "", resultValue, 255, this.ls_iniFileFullPath);
return resultValue.ToString();
}
/// 写入数据到INI文件中
/// ini节点名称
/// iniKEY名称
/// 写入的值
///
public void Write(string iniSection, string iniKey, string iniValue)
{
WritePrivateProfileString(iniSection, iniKey, iniValue, this.ls_iniFileFullPath);
}
///
///从ini文件中读取数据
/// ini节点名称
/// iniKEY名称
///
///
public string Read(string iniSection, string iniKey)
{
StringBuilder resultValue = new StringBuilder(255);
int i = GetPrivateProfileString(iniSection, iniKey, "", resultValue, 255, this.ls_iniFileFullPath);
return resultValue.ToString();
}
///
/// 删除指定节点
///
/// 要删除的节点名
///删除成功或节点不存在,返回值都为真
public bool DeleteSection(string section)
{
bool flag = false;//标志
try
{
if (section.Trim().Length <= 0)
{//找不到节点
flag = false;
}
else
{
if (WritePrivateProfileString(section, null, null, this.ls_iniFileFullPath ) == 0)
{
flag = false;
}
else
{
flag = true;
}
}
}
catch
{
flag = false;
}
return flag;
}
/// 删除指定节点
///
/// 要删除的节点名
///
public bool DeleteSection(string section)
{
bool flag = false;//标志
try
{
if (section.Trim().Length <= 0)
{//找不到节点
flag = false;
}
else
{
if (WritePrivateProfileString(section, null, null, this.ls_iniFileFullPath ) == 0)
{
flag = false;
}
else
{
flag = true;
}
}
}
catch
{
flag = false;
}
return flag;
}
///
/// 删除指定节点下的KEY值
///
/// 指定节点
/// 指定节点下的key
///删除成功或不存在时都返回true
public bool DeleteKey(string section, string key)
{
bool flag = false;
try
{
if (section.Trim().Length <= 0 || key.Trim().Length <= 0)
{
flag = false;
}
else
{
if (WritePrivateProfileString(section, key, null, this.ls_iniFileFullPath ) == 0)
{
flag = false;
}
else
{
flag = true;
}
}
}
catch
{
flag = false;
}
return flag;
/// 删除指定节点下的KEY值
///
/// 指定节点
/// 指定节点下的key
///
public bool DeleteKey(string section, string key)
{
bool flag = false;
try
{
if (section.Trim().Length <= 0 || key.Trim().Length <= 0)
{
flag = false;
}
else
{
if (WritePrivateProfileString(section, key, null, this.ls_iniFileFullPath ) == 0)
{
flag = false;
}
else
{
flag = true;
}
}
}
catch
{
flag = false;
}
return flag;
}
}
}
}
操作实例:
private void button1_Click(object sender, EventArgs e)
{
string t = "";
iniFies ini = new iniFies();
ini.ls_iniFileFullPath = Application.StartupPath + "\\config\\Monitor.ini";
t = ini.Read("Monitor", "TermNo");//读出指定节点
MessageBox.Show(t);//显示
//ini.Write("Monitor", "TermNo", "ttttttttttt");//更改某一节点
}
{
string t = "";
iniFies ini = new iniFies();
ini.ls_iniFileFullPath = Application.StartupPath + "\\config\\Monitor.ini";
t = ini.Read("Monitor", "TermNo");//读出指定节点
MessageBox.Show(t);//显示
//ini.Write("Monitor", "TermNo", "ttttttttttt");//更改某一节点
}