zoukankan      html  css  js  c++  java
  • 使用C#读写ini配置文件

     

    INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数. INI文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个等号,等号右边就是关键字的值(VALUE).例如: [Section1]     KeyWord1 = Value1     KeyWord2 = Value2     ... [Section2]     KeyWord3 = Value3     KeyWord4 = Value4
    C#命名空间中没有直接读写INI的类,当然如果你把INT当成文本文件用System.IO类来读写算我没说. 我现在介绍的是系统处理INI的方法. 虽然C#中没有,但是在"kernel32.dll"这个文件中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString() C#声明INI文件的写操作函数WritePrivateProfileString():  

    [DllImport( "kernel32" )]   private static extern long WritePrivateProfileString ( string section ,string key , string val  , string filePath ) ;

    参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件中关键字的数值;filePath:INI文件的完整的路径和名称。 C#申明INI文件的读操作函数GetPrivateProfileString():

    [DllImport("kernel32")]  private static extern int GetPrivateProfileString ( string section ,   string key , string def , StringBuilder retVal ,   int size , string filePath ) ;

    参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径和名称。 
    下面是一个读写INI文件的类:  

    public class INIClass {  public string inipath;  [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);  /// <summary>  /// 构造方法  /// </summary>  /// <param name="INIPath">文件路径</param> public INIClass(string INIPath)  {   inipath = INIPath;  }  /// <summary>  /// 写入INI文件  /// </summary>  /// <param name="Section">项目名称(如 [TypeName] )</param>  /// <param name="Key"></param>  /// <param name="Value"></param> public void IniWriteValue(string Section,string Key,string Value)  {   WritePrivateProfileString(Section,Key,Value,this.inipath);  }  /// <summary>  /// 读出INI文件  /// </summary>  /// <param name="Section">项目名称(如 [TypeName] )</param>  /// <param name="Key"></param> public string IniReadValue(string Section,string Key)  {   StringBuilder temp = new StringBuilder(500);   int i = GetPrivateProfileString(Section,Key,"",temp,500,this.inipath);   return temp.ToString();  }  /// <summary>  /// 验证文件是否存在  /// </summary>  /// <returns>布尔值</returns> public bool ExistINIFile()  {   return File.Exists(inipath);  } }
    坚持就是力量 量变造就质变
  • 相关阅读:
    pycharm的一些操作指令和技巧
    Python开发:模块
    python字符编码
    Pyhton开发:Python基础杂货铺
    Python之函数
    python介绍
    记录
    HDOJ3699 A hard Aoshu Problem[暴力]
    HDOJ3697 Selecting courses[贪心]
    HDOJ4054 Hexadecimal View[编码题]
  • 原文地址:https://www.cnblogs.com/songxm/p/3282243.html
Copyright © 2011-2022 走看看