C#讀寫ini文件詳解
C#讀寫ini文件之前要了解的概念:INI就是擴(kuò)展名為"INI"的文件,其實(shí)他本身是個(gè)文本文件,可以用記事本打開,主要存放的是用戶所做的選擇或系統(tǒng)的各種參數(shù).
C#讀寫ini文件其實(shí)并不是普通的文本文件.它有自己的結(jié)構(gòu).由若干段落(SECTION)組成,在每個(gè)帶括號的標(biāo)題下面,是若干個(gè)以單個(gè)單詞開頭的關(guān)鍵字(KEYWORD)和一個(gè)等號,等號右邊就是關(guān)鍵字的值(VALUE).例如:
- [Section1]
- KeyWord1 = Value1
- KeyWord2 = Value2
- ...
- [Section2]
- KeyWord3 = Value3
- KeyWord4 = Value4
C#讀寫ini文件最初的想法:C#命名空間中沒有直接讀寫INI的類,當(dāng)然如果你把INT當(dāng)成文本文件用System.IO類來讀寫算我沒說.
我現(xiàn)在介紹的是系統(tǒng)處理INI的方法.
雖然C#中沒有,但是在"kernel32.dll"這個(gè)文件中有Win32的API函數(shù)--WritePrivateProfileString()和GetPrivateProfileString()
C#讀寫ini文件實(shí)現(xiàn)之C#聲明INI文件的寫操作函數(shù)WritePrivateProfileString():
- [DllImport( "kernel32" )]
- private static extern long WritePrivateProfileString (
- string section ,string key , string val
- , string filePath ) ;
參數(shù)說明:
section:INI文件中的段落;
key:INI文件中的關(guān)鍵字;
val:INI文件中關(guān)鍵字的數(shù)值;
filePath:INI文件的完整的路徑和名稱。
C#讀寫ini文件實(shí)現(xiàn)之C#申明INI文件的讀操作函數(shù)GetPrivateProfileString():
- [DllImport("kernel32")]
- private static extern int GetPrivateProfileString (
- string section ,
- string key , string def , StringBuilder retVal ,
- int size , string filePath ) ;
參數(shù)說明:
section:INI文件中的段落名稱;
key:INI文件中的關(guān)鍵字;
def:無法讀取時(shí)候時(shí)候的缺省數(shù)值;
retVal:讀取數(shù)值;
size:數(shù)值的大??;
filePath:INI文件的完整路徑和名稱。
下面是一個(gè)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﹥
- /// 構(gòu)造方法
- /// ﹤/summary﹥
- /// ﹤param name="INIPath"﹥文件路徑﹤/param﹥
- public INIClass(string INIPath)
- {
- inipath = INIPath;
- }
- /// ﹤summary﹥
- /// 寫入INI文件
- /// ﹤/summary﹥
- /// ﹤param name="Section"﹥項(xiàng)目名稱(如 [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"﹥項(xiàng)目名稱(如 [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﹥
- /// 驗(yàn)證文件是否存在
- /// ﹤/summary﹥
- /// ﹤returns﹥布爾值﹤/returns﹥
- public bool ExistINIFile()
- {
- return File.Exists(inipath);
- }
- }
C#讀寫ini文件的相關(guān)內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#讀寫ini文件有所幫助。
【編輯推薦】