C 讀取ini配置檔案

2021-08-18 08:52:14 字數 2979 閱讀 7199

雖然微軟早已經建議在windows中用登錄檔代替ini檔案,但是在實際應用中,ini檔案仍然有用武之地,尤其現在綠色軟體的流行,越來越多的程式將自己的一些配置資訊儲存到了ini檔案中。

[section]

key=value

vc中提供了api函式進行ini檔案的讀寫操作,但是微軟推出的c#程式語言中卻沒有相應的方法,下面我介紹乙個讀寫ini檔案的c#類並利用該類儲存窗體的座標,當程式再次執行的時候,窗體將顯示在上次退出時的位置。

inifile類:

using system;

using system.io;

using system.runtime.interopservices;

因為我們需要呼叫api函式,所以必須建立system.runtime.interopservices命名空間以提供可用於訪問 .net 中的 com 物件和本機 api 的類的集合。

[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 plain

copy

// 封裝的方法中,最有價值的是獲取所有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...