ini檔案的簡單讀寫

2021-07-10 19:13:18 字數 1726 閱讀 8625

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...