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 是鍵值,也...