先Show示例:
private void TestINI_Load(object sender, System.EventArgs e)
{
//创建一个INIFile对象,参数为文件路径,如果不存在它会自动创建的
INIFile inf=new INIFile(@"D:\工作目录\VSPP\VSPPServer\bin\Debug\COMPILED.INI");
//显示INI配置的结构
foreach(string k in inf.Segments.Keys)
{
TreeNode o=new TreeNode(k);
INISegment s=inf.Segments[k]; //取出当前配置节
foreach(string k1 in s.Items.Keys)
{
TreeNode o1=new TreeNode(k1+" = "+s.Items[k1].Value); //访问配置节中每个配置项
o.Nodes.Add(o1);
}
treeView1.Nodes.Add(o);
}
//添加一个配置
inf.Segments.Add("Test"); //添加Test节
inf.Segments["Test"].Items.Add("IP","192.168.0.1"); //添加一个配置项
//快速添加一个配置项
inf.Segments["测试"].Items["Host"].Value="localhost"; // :)和上面两行一样的效果
//读取也是同样的方便
MessageBox.Show(inf.Segments["测试"].Items["Host"].Value);
//如果不存在这样的配置项,将返回空字符串并创建这个项
MessageBox.Show(inf.Segments["测试"].Items["Server"].Value);
//清除一个配置节下面的所有配置项
//inf.Segments["Action"].Clear();
}
再Show代码:
using System;
using System.IO;
using System.Data;
using System.Text;
using System.Collections;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
namespace eGlic
{
#region INI文件操作类
/// <summary>
/// 配置节
/// </summary>
public class INISegment
{
private string __Name;
private INISegments __Owner;
/// <summary>
/// 所有配置项集合
/// </summary>
public INIItems Items;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="o">Owner</param>
/// <param name="vName">配置节名称</param>
public INISegment(INISegments o,string vName)
{
__Owner=o;
__Name=vName;
Items=new INIItems(this);
o.Owner.GetSegment(this);
}
/// <summary>
/// 获取配置节的名称
/// </summary>
public string Name
{
get {return __Name;}
}
/// <summary>
/// 获取Segment的Owner:INISegments集合
/// </summary>
public INISegments Owner
{
get {return __Owner;}
}
/// <summary>
/// 清除所有设置项
/// </summary>
public void Clear()
{
__Owner.Owner.WriteSegment(__Name,"\0\0");
}
}
/// <summary>
/// 配置节集合
/// </summary>
public class INISegments : DictionaryBase
{
private INIFile __Owner;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="o">Owner</param>
public INISegments(INIFile o)
{
__Owner=o;
}
/// <summary>
/// 获取此对象的Owner:INIFile类
/// </summary>
public INIFile Owner
{
get {return __Owner;}
}
/// <summary>
/// 添加一个已经存在的配置节
/// </summary>
/// <param name="o">配置节对象</param>
public void Add(INISegment o)
{
if(!Dictionary.Contains(o.Name))
Dictionary.Add(o.Name,o);
}
/// <summary>
/// 添加一个可能不存在的配置节(创建一个配置节)
/// </summary>
/// <param name="vName">配置节名称</param>
/// <returns>添加的配置节</returns>
public INISegment Add(string vName)
{
if(Dictionary.Contains(vName)