雖然微軟早已經建議在windows中用登錄檔代替ini檔案,但是在實際應用中,ini檔案仍然有用武之地,尤其現在綠色軟體的流行,越來越多的程式將自己的一些配置資訊儲存到了ini檔案中。
[section]vc中提供了api函式進行ini檔案的讀寫操作,但是微軟推出的c#程式語言中卻沒有相應的方法,下面我介紹乙個讀寫ini檔案的c#類並利用該類儲存窗體的座標,當程式再次執行的時候,窗體將顯示在上次退出時的位置。key=value
inifile類:
using system;因為我們需要呼叫api函式,所以必須建立system.runtime.interopservices命名空間以提供可用於訪問 .net 中的 com 物件和本機 api 的類的集合。using system.io;
using system.runtime.interopservices;
[c-sharp]view plain
copy
using
system.text;
namespace
ini
//類的建構函式,傳遞ini檔名
publicvoid iniwritevalue(string
section,
string
key,
string
value)
//寫ini檔案
publicstring inireadvalue(string
section,
string
key)
//讀取ini檔案指定
}
}
呼叫inifile類:
新建乙個標準的c# windows應用程式專案,在窗體中分別增加命名為sect、key、val的三個文字框。
增加如下**:
using ini; //建立命名空間//當窗體關閉時儲存窗體座標
[c-sharp]view plain
copy
privatevoid form1_closing(
object
sender, system.componentmodel.canceleventargs e)
//當窗體啟動時,讀取ini檔案的值並賦值給窗體[c-sharp]view plain
copy
privatevoid form1_load(
object
sender, system.eventargs e)
}
*********************************************=
其他方法:
dllimport("kernel32.dll")]public extern static int getprivateprofilestring(string segname, string keyname, string sdefault, stringbuilder buffer, int nsize, string filename);public extern static int getprivateprofilestringa(string segname, string keyname, string sdefault, byte buffer, int ilen, string filename); // ansi版本
[dllimport("kernel32.dll")]
public extern static int getprivateprofilesection(string segname, stringbuilder buffer, int nsize, string filename);
[dllimport("kernel32.dll")]
public extern static int writeprivateprofilesection(string segname, string svalue, string filename);
[dllimport("kernel32.dll")]
public extern static int writeprivateprofilestring(string segname, string keyname, string svalue, string filename);
[dllimport("kernel32.dll")]
public extern static int getprivateprofilesectionnamesa(byte buffer, int ilen, string filename);
[c-sharp]view plaincopy
// 封裝的方法中,最有價值的是獲取所有sections和所有的keys,網上關於這個的**大部分是錯誤的,這裡給出乙個正確的方法:
/// 返回該配置檔案中所有section名稱的集合
public
arraylist readsections()
} } return
arraylist;
} // 獲取節點的所有key值
public
arraylist readkeys(
string
sectionname)
} } return
arraylist;
}
C 讀取ini配置檔案
using system using system.io using system.runtime.interopservices using system.text todo 在此處新增建構函式邏輯 public class iniclass 寫入ini檔案 專案名稱 如 typename 鍵 值...
C 讀取ini配置檔案
雖然微軟早已經建議在windows中用登錄檔代替ini檔案,但是在實際應用中,ini檔案仍然有用武之地,尤其現在綠色軟體的流行,越來越多的程式將自己的一些配置資訊儲存到了ini檔案中。section key valuevc中提供了api函式進行ini檔案的讀寫操作,但是微軟推出的c 程式語言中卻沒有...
ini配置檔案讀取類 C
using system using system.io using system.runtime.interopservices using system.text using system.collections using system.collections.specialized publ...