人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

[c#]:如何在C#中讀寫(xiě)INI文件(一)

[c#]:如何在C#中讀寫(xiě)INI文件(一)

更新時(shí)間:2022-07-16 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

INI文件就是擴(kuò)展名為“ini”的文件。在Windows系統(tǒng)中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。該文件主要存放用戶所做的選擇以及系統(tǒng)的各種參數(shù)。用戶可以通過(guò)修改INI文件,來(lái)改變應(yīng)用程序和系統(tǒng)的很多配置。但自從Windows 95的退出,在Windows系統(tǒng)中引入了注冊(cè)表的概念,INI文件在Windows系統(tǒng)的地位就開(kāi)始不斷下滑,這是因?yàn)樽?cè)表的獨(dú)特優(yōu)點(diǎn),使應(yīng)用程序和系統(tǒng)都把許多參數(shù)和初始化信息放進(jìn)了注冊(cè)表中。但在某些場(chǎng)合,INI文件還擁有其不可替代的地位。本文就來(lái)探討一下C#是如何對(duì)INI進(jìn)行讀寫(xiě)操作。

INI文件的結(jié)構(gòu)



INI文件是一種按照特點(diǎn)方式排列的文本文件。每一個(gè)INI文件構(gòu)成都非常類似,由若干段落(section)組成,在每個(gè)帶括號(hào)的標(biāo)題下面,是若干個(gè)以單個(gè)單詞開(kāi)頭的關(guān)鍵詞(keyword)和一個(gè)等號(hào),等號(hào)右邊的就是關(guān)鍵字對(duì)應(yīng)的值(value)。其一般形式如下:




[Section1]

  KeyWord1 = Valuel

  KeyWord2 = Value2

   ……

  [Section2]

  KeyWord3 = Value3

  KeyWord4 = Value4




本文中介紹的程序設(shè)計(jì)及運(yùn)行環(huán)境:

● 微軟視窗2000 高級(jí)服務(wù)器版

● .Net Framework SDK正式版

C#和Win32 API函數(shù)



C#并不像C++,擁有屬于自己的類庫(kù)。C#使用的類庫(kù)是.Net框架為所有.Net程序開(kāi)發(fā)提供的一個(gè)共有的類庫(kù)——.Net FrameWork SDK。雖然.Net FrameWork SDK內(nèi)容十分龐大,功能也非常強(qiáng)大,但還不能面面俱到,至少它并沒(méi)有提供直接操作INI文件所需要的相關(guān)的類。在本文中,C#操作INI文件使用的是Windows系統(tǒng)自帶Win32的API函數(shù)——WritePrivateProfileString()和GetPrivateProfileString()函數(shù)。這二個(gè)函數(shù)都位于“kernel32.dll”文件中。

我們知道在C#中使用的類庫(kù)都是托管代碼(Managed Code)文件,而Win32的API函數(shù)所處的文件,都是非托管代碼(Unmanaged Code)文件。這就導(dǎo)致了在C#中不可能直接使用這些非托管代碼文件中的函數(shù)。好在.Net框架為了保持對(duì)下的兼容,也為了充分利用以前的資源,提出了互操作,通過(guò)互操作可以實(shí)現(xiàn)對(duì)Win32的API函數(shù)的調(diào)用。互操作不僅適用于Win32的API函數(shù),還可以用來(lái)訪問(wèn)托管的COM對(duì)象。C#中對(duì)Win32的API函數(shù)的互操作是通過(guò)命名空間“System.Runtime.InteropServices”中的“DllImport”特征類來(lái)實(shí)現(xiàn)的。它的主要作用是指示此屬性化方法是作為非托管DLL的輸出實(shí)現(xiàn)的。下面代碼就是在C#利用命名空間“System.Runtime.InteropServices”中的“DllImport”特征類申明上面二個(gè)Win32的API函數(shù):

C#申明INI文件的寫(xiě)操作函數(shù)WritePrivateProfileString():




[ DllImport ( "kernel32" ) ]

private static extern long WritePrivateProfileString ( string

section ,

string key , string val , string filePath ) ;




參數(shù)說(shuō)明:section:INI文件中的段落;key:INI文件中的關(guān)鍵字;val:INI文件中關(guān)鍵字的數(shù)值;filePath:INI文件的完整的路徑和名稱。

C#申明INI文件的讀操作函數(shù)GetPrivateProfileString():




[ DllImport ( "kernel32" ) ]

private static extern int GetPrivateProfileString ( string section ,

string key , string def , StringBuilder retVal ,

int size , string filePath ) ;




參數(shù)說(shuō)明:section:INI文件中的段落名稱;key:INI文件中的關(guān)鍵字;def:無(wú)法讀取時(shí)候時(shí)候的缺省數(shù)值;retVal:讀取數(shù)值;size:數(shù)值的大。籪ilePath:INI文件的完整路徑

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 永定县| 郯城县| 宝鸡市| 旺苍县| 乐安县| 类乌齐县| 洪湖市| 封开县| 广东省| 龙川县| 莱西市| 金寨县| 汪清县| 富平县| 资阳市| 威远县| 资兴市| 宿州市| 平乡县| 武冈市| 古交市| 马鞍山市| 五指山市| 遂昌县| 盐边县| 安康市| 菏泽市| 麻栗坡县| 靖宇县| 邹平县| 江油市| 彭山县| 宁明县| 奉节县| 石泉县| 辉县市| 五原县| 英吉沙县| 泸西县| 黔西县| 伊金霍洛旗|