如何在C 中讀寫INI檔案

2021-06-08 21:10:34 字數 2347 閱讀 8620

ini檔案就是擴充套件名為「ini」的檔案。在windows系統中,ini檔案是很多,最重要的就是「system.ini」、「system32.ini」和「win.ini」。該檔案主要存放使用者所做的選擇以及系統的各種引數。使用者可以通過修改ini檔案,來改變應用程式和系統的很多配置。但自從windows 95的退出,在windows系統中引入了登錄檔的概念,ini檔案在windows系統的地位就開始不斷下滑,這是因為登錄檔的獨特優點,使應用程式和系統都把許多引數和初始化資訊放進了登錄檔中。但在某些場合,ini檔案還擁有其不可替代的地位。本文就來**一下c#是如何對ini進行讀寫操作。

ini檔案的結構

[section1]

keyword1 = valuel

keyword2 = value2

…… [section2]

keyword3 = value3

keyword4 = value4

c#和win32 api函式

c#並不像c++,擁有屬於自己的類庫。c#使用的類庫是.net框架為所有.net程式開發提供的乙個共有的類庫——.net framework sdk。雖然.net framework sdk內容十分龐大,功能也非常強大,但還不能面面俱到,至少它並沒有提供直接操作ini檔案所需要的相關的類。在本文中,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的輸出實現的。下面**就是在c#利用命名空間「system.runtime.interopservices」中的「dllimport」特徵類申明上面二個win32的api函式:

c#申明ini檔案的寫操作函式writeprivateprofilestring():

[ dllimport ( "kernel32" ) ]

private static extern long writeprivateprofilestring ( string

section ,

string key , string val , string filepath ) ;

引數說明:section:ini檔案中的段落;key:ini檔案中的關鍵字;val:ini檔案中關鍵字的數值;filepath:ini檔案的完整的路徑和名稱。

c#申明ini檔案的讀操作函式getprivateprofilestring():

[ dllimport ( "kernel32" ) ]

private static extern int getprivateprofilestring ( string section ,

string key , string def , stringbuilder retval ,

int size , string filepath ) ;

引數說明:section:ini檔案中的段落名稱;key:ini檔案中的關鍵字;def:無法讀取時候時候的預設數值;retval:讀取數值;size:數值的大小;filepath:ini檔案的完整路徑和名稱。

下面是乙個讀寫ini檔案的類

public class iniclass

///

/// 寫入ini檔案

///

/// 專案名稱(如 [typename] )

/// 鍵

/// 值

public void iniwritevalue(string section,string key,string value)

///

/// 讀出ini檔案

///

/// 專案名稱(如 [typename] )

/// 鍵

public string inireadvalue(string section,string key)

///

/// 驗證檔案是否存在

///

/// 布林值

public bool existinifile()

}

如何在C 中讀寫INI檔案

ini檔案就是擴充套件名為 ini 的檔案。在windows系統中,ini檔案是很多,最重要的就是 system.ini system32.ini 和 win.ini 該檔案主要存放使用者所做的選擇以及系統的各種引數。使用者可以通過修改ini檔案,來改變應用程式和系統的很多配置。但自從windows...

如何在C 中讀寫INI檔案

ini檔案就是擴充套件名為 ini 的檔案。在windows系統中,ini檔案是很多,最重要的就是 system.ini system32.ini 和 win.ini 該檔案主要存放使用者所做的選擇以及系統的各種引數。使用者可以通過修改ini檔案,來改變應用程式和系統的很多配置。但自從windows...

如何在C 中讀寫INI檔案

檢視文章 如何在c 中讀寫ini檔案 2009 11 16 10 35 section1 keyword1 valuel keyword2 value2 section2 keyword3 value3 keyword4 value4 c 和win32api函式 c 並不像c 擁有屬於自己的類庫。c...