C#操作ini(读取、写入)

C#操作ini(读取、写入)

  INI文件是一种按照特点方式排列的文本文件,该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置。但自从Windows 95的退出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初始化信息放进了注册表中。但在某些场合,INI文件还拥有其不可替代的地位。

INI文件的结构

INI文件是一种按照特点方式排列的文本文件。每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对应的值(value)。其一般形式如下:

     [Section1]

  KeyWord1 = Valuel

  KeyWord2 = Value2

   ......

  [Section2]

  KeyWord3 = Value3

  KeyWord4 = Value4

 

 [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath);
注:
  section:要读取的段落名
key: 要读取的键
defVal: 读取异常的情况下的缺省值
retVal: key所对应的值,如果该key不存在则返回空值
size: 值允许的大小
filePath: INI文件的完整路径和文件名
 
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
注:
  section: 要写入的段落名
key: 要写入的键,如果该key存在则覆盖写入
val: key所对应的值
filePath: INI文件的完整路径和文件名
 
 /// <summary>    
        /// 读取INI文件    
        /// </summary>    
        /// <param name="section">项目名称(如 [section] )</param>    
        /// <param name="skey">键</param>   
        /// <param name="path">路径</param> 
        public string IniReadValue(string section, string skey, string path)
        {
            StringBuilder temp = new StringBuilder(500);
            int i = GetPrivateProfileString(section, skey, "", temp, 500, path);
            return temp.ToString();
        }
 
 
      /// <summary>
        /// 写入ini文件
        /// </summary>
        /// <param name="section">项目名称</param>
        /// <param name="key">键</param>
        /// <param name="value">值</param>
        /// <param name="path">路径</param>
        public void IniWrite(string section, string key, string value,string path)
        {
            WritePrivateProfileString(section, key, value, path);
   }
 
 
测试:
//创建一个test.ini文件 并在A段落写入 姓名(key)=wlj(value)
IniWrite("A","姓名","wlj","f:/test.ini")
IniWrite("B","姓名","WZQ","f:/test.ini")
test.ini文件的格式:

ini模版:

[A]

姓名=wlj

 

[B]

姓名=WZQ

 

//读取test.ini文件中A 段落  键=姓名 的值

 IniReadValue("A","姓名","f:/test.ini")
//读取test.ini文件中A 段落中所有值
IniReadValue("A",null,"f:/test.ini")
 
//删除test.ini文件中A 段落中所有键(没有键,也就没有值了)
IniWrite("A",null,null,"f:/test.ini")
//删除test.ini文件中所有段落
IniWrite(null,null,null,"f:/test.ini")
 
posted @ 2012-07-30 21:13  初雪之恋  阅读(11153)  评论(0编辑  收藏  举报