ini檔案的結構:
[section1]
keyword1 =valuel
keyword2 =value2
[section2]
keyword3 =value3
keyword4 =value4
c#操作ini檔案使用的是windows系統自帶win32的api函式——writeprivateprofilestring()和getprivateprofilestring()函式。這二個函式都位於「kernel32.dll」檔案中。
我們知道在c#中使用的類庫都是託管**(managed code)檔案,而win32的api函式所處的檔案,都是非託管**(unmanaged code)檔案。這就導致了在c#中不可能直接使用這些非託管**檔案中的函式。好在.net框架為了保持對下的相容,也為了充分利用以前的資源,提出了互操作,通過互操作可以實現對win32的api函式的呼叫。互操作不僅適用於win32的api函式,還可以用來訪問託管的com物件。c#中對win32的api函式的互操作是通過命名空間「system.runtime.interopservices」中的「dllimport」特徵類來實現的。它的主要作用是指示此屬性化方法是作為非託管dll的輸出實現的。
第一步:
宣告命名空間:system.runtime.interopservices;
第二步:
在類中宣告ini檔案的寫操作函式writeprivateprofilestring():
[ dllimport ( "kernel32" ) ]
private
static
extern
long writeprivateprofilestring (
string section ,
string key ,
string val ,
string filepath ) ;
section:節名稱;
key:鍵名稱;
val:鍵值;
filepath:儲存路徑;
kernel32.dll為包含讀寫函式的檔案;
dllimport:特徵類
在類中宣告
ini檔案的讀操作函式getprivateprofilestring():
[ dllimport ( "kernel32" ) ]
private
static
extern
int getprivateprofilestring (string section ,string key ,string def , stringbuilder retval ,int size , stringfilepath ) ;
section:ini檔案中的段落名稱;
key:ini檔案中的關鍵字;
def:無法讀取時候時候的預設數值;
retval:讀取數值;
size:數值的大小;
filepath:ini檔案的完整路徑和名稱。
(注意不要有拼寫錯誤……)
第三步:
像呼叫方法一樣直接呼叫即可:
寫呼叫:writeprivateprofilestring("demo", "abc", "123", "d:\\demo.ini"); //@"d:\demo.ini"這種寫法不能用?為什麼?
讀呼叫:getprivateprofilestring("demo", "abc", "", temp, 255, "d:\\demo.ini");
INI檔案讀寫
一 有必要了解ini檔案的結構 注釋 小節名 關鍵字 值 ini檔案允許有多個小節,每個小節又允許有多個關鍵字,後面是該關鍵字的值。值的型別有三種 字串 整型數值和布林值。其中字串存貯在ini檔案中時沒有引號,布林真值用1表示,布林假值用0表示。注釋以分號 開頭。二 定義 1 在inte ce的us...
讀寫ini檔案
using system using system.io using system.text using system.configuration using system.runtime.interopservices using system.collections.specialized us...
讀寫ini檔案
using system using system.io using system.text using system.configuration using system.runtime.interopservices using system.collections.specialized us...