C#讀寫ini文件詳解
C#讀寫ini文件之前要了解的概念:INI就是擴展名為"INI"的文件,其實他本身是個文本文件,可以用記事本打開,主要存放的是用戶所做的選擇或系統的各種參數.
C#讀寫ini文件其實并不是普通的文本文件.它有自己的結構.由若干段落(SECTION)組成,在每個帶括號的標題下面,是若干個以單個單詞開頭的關鍵字(KEYWORD)和一個等號,等號右邊就是關鍵字的值(VALUE).例如:
- [Section1]
- KeyWord1 = Value1
- KeyWord2 = Value2
- ...
- [Section2]
- KeyWord3 = Value3
- KeyWord4 = Value4
C#讀寫ini文件最初的想法:C#命名空間中沒有直接讀寫INI的類,當然如果你把INT當成文本文件用System.IO類來讀寫算我沒說.
我現在介紹的是系統處理INI的方法.
雖然C#中沒有,但是在"kernel32.dll"這個文件中有Win32的API函數--WritePrivateProfileString()和GetPrivateProfileString()
C#讀寫ini文件實現之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文件實現之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文件的完整路徑和名稱。
下面是一個C#讀寫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);
- }
- }
C#讀寫ini文件的相關內容就向你介紹到這里,希望對你了解和學習C#讀寫ini文件有所幫助。
【編輯推薦】