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")
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM