摘要:本文介紹了在Visual C++ 6.0下對Windows配置設置文件的存取訪問方法,對該方法的實現過程作有較詳細的介紹。
關鍵字:Windows系統、配置設置文件、存取訪問
正文:
一、 引言
不論是對于程序開發人員還是軟件應用人員,一定不會對擴展名為"ini"的文件感到陌生,不僅Windows操作系統將大名鼎鼎的win.ini作為記錄當前系統狀態,并根據其記錄內容對系統進行配置的一種便捷的方法,而且眾多的應用軟件也廣泛地使用該類型的配置文件來對軟件進行記錄、配置。本文就針對配置設置文件的使用展開討論,以期能為軟件狀態的記錄與設置尋求一種方便簡潔的實現方法。
二、 配置設置文件概述
配置設置文件是Windows操作系統下的一種特殊化的ASCII文件,以"ini"為文件擴展名。該文件也被稱做是初始化文件(initialization file)和概要文件(profile) ,通常應用程序可以擁有自己的配置設置文件來存儲自己的狀態信息,一般來說私有的配置設置文件比較小,可以減少程序在初始化時讀取配置文件時的信息量,從而可以提高程序的啟動速度、提高應用程序和系統的性能。但如待存取的信息涉及到Windows系統環境或是其他的應用程序時才必須在Windows系統的配置文件win.ini中記錄并在訪問的同時發送出消息WM_WININICHANGE給所有的頂層窗口,通知其他的程序系統的配置文件已做了更改。但由于win.ini中不僅記錄了系統的有關信息,也存儲著許多其他應用軟件的一些配置數據,所以訪問的數據量要遠比私有的配置文件大的多。
配置文件里的信息之所以能為系統和眾多的軟件所讀取并識別,是由于其內部對數據的存取采用了預先約定好的"項-值對(entry-value pairs)"存儲結構來對待存取的數據進行分門別類地進行條理清晰的存儲。我們可以打開系統目錄下的win.ini文件:
[windows] load= run= NullPort=None
[Desktop] WallpaperStyle=2 Pattern=(無)
[intl] s2359=PM iCountry=86 …… 可見,配置文件把信息分成若干"節",節標題放在方括號中,如[Desktop]就是Desktop節,在一個節內包含了一些與之相關相近的"項",并通過等號對其進行賦值。一般的形式如下所示:
[SECTION] ENTRY=VALUE 其中VALUE值可以有兩種類型:數值型和字符串型,而且Windows操作系統專門為此提供了6個API函數來對配置設置文件進行讀、寫:
GetPrivateProfileInt() 從私有初始化文件獲取整型數值 GetPrivateProfileString() 從私有初始化文件獲取字符串型值 GetProfileInt 從win.ini 獲取整數值 GetProfileString 從win.ini 獲取字符串值 WritePrivateProfileString 寫字符串到私有初始化文件 WriteProfileString 寫字符串到win.ini
在這里需要指出:當向配置文件存儲信息時,不論是數據還是字符串都要先轉換成字符串,然后再行存儲。
|