zoukankan      html  css  js  c++  java
  • 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")
     
  • 相关阅读:
    HDU 3081 Marriage Match II
    HDU 4292 Food
    HDU 4322 Candy
    HDU 4183 Pahom on Water
    POJ 1966 Cable TV Network
    HDU 3605 Escape
    HDU 3338 Kakuro Extension
    HDU 3572 Task Schedule
    HDU 3998 Sequence
    Burning Midnight Oil
  • 原文地址:https://www.cnblogs.com/wang726zq/p/ini.html
Copyright © 2011-2022 走看看