在C 中讀寫INI檔案

2021-06-15 22:49:16 字數 2609 閱讀 7097

ini

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

ini檔案的結構

ini[section1]

keyword1 = valuel

keyword2 = value2

……

[section2]

keyword3 = value3

keyword4 = value4

本文中介紹的程式設計及執行環境:

● 微軟視窗2000 高階伺服器版

● .net framework sdk

正式版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檔案的完整路徑和名稱。

c#對ini檔案進行寫操作**:

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using system.runtime.interopservices;

using system.io;

namespace inifiletest

private void button1_click(object sender, eventargs e)

private void button2_click(object sender, eventargs e)

private void button3_click(object sender, eventargs e)}}

在VC 中讀寫INI檔案

在vc 中讀寫ini檔案 zt 在我們寫的程式當中,總有一些配置資訊需要儲存下來,以便完成程式的功能,最簡單的辦法就是將這些資訊寫入ini檔案中,程式初始化時再讀入.具體應用如下 一.將資訊寫入.ini檔案中.1.所用的winapi函式原型為 其中各引數的意義 lpctstr lpstring 是鍵...

在VC 中讀寫INI檔案

在vc 中讀寫ini檔案 在我們寫的程式當中,總有一些配置資訊需要儲存下來,以便完成程式的功能,最簡單的辦法就是將這些資訊寫入ini檔案中,程式初始化時再讀入.具體應用如下 一.將資訊寫入.ini檔案中.1.所用的winapi函式原型為 其中各引數的意義 lpctstr lpstring 是鍵值,也...

在VC 中讀寫INI檔案

在vc 中讀寫ini檔案 在我們寫的程式當中,總有一些配置資訊需要儲存下來,以便完成程式的功能,最簡單的辦法就是將這些資訊寫入ini檔案中,程式初始化時再讀入.具體應用如下 一.將資訊寫入.ini檔案中.1.所用的winapi函式原型為 其中各引數的意義 lpctstr lpstring 是鍵值,也...