在VB應用程式中使用INI檔案的一點體會 (轉)
摘要 結合例項介紹了在VB中 操作初始化的方法和優點.
關鍵詞 Windows API INI檔案
一、INI檔案概述
Windows INI檔案,可解釋為Windows初始化檔案。它是一種專門用來儲存應用初始化資訊和執行環境資訊的文字檔案。例如Windows 3.1中兩個著名的INI檔案win.ini和system.ini就在Windows啟動時定義了Windows環境中滑鼠響應速度、使用的外殼()程式等設定。Windows附帶的許多應用程式也都有自己的INI檔案,例如控制皮膚的INI 檔案為control.ini,它也同樣定義了控制皮膚的有關設定。ini檔案是一種文字檔案,它可以透過Notepad等文字編輯器進行編輯。ini檔案具有特定的格式。一個INI檔案是由若干個段(section)組成的,每個段中包含若干關鍵字(key)及相應的值(value)。段的格式如下:
[SectionName]
KeyName=Value
其中SectionName和KeyName分別是段名和關鍵字名,Value為關鍵字對應的設定值。需要加以注意的是:
(1)段名必須加以"["和"]",且"["必須在螢幕的第一列;
(2)關鍵字名也必須從螢幕的第一列開始書寫,且後面必須緊跟"=";
(3)可以對檔案加以註釋,每行註釋須以";"開頭。
在Windows中,可以透過手工編輯INI 檔案來改變應用程式設定。如要想將Windows的外殼程式改為器,則可將system.ini中[boot]段下的"shell=progman.exe"改為"shell=winfile.exe"。有些設定也可以直接在應用程式介面上更改,但實際上也是透過修改INI檔案來儲存這些修改的。
二、在VB中操作INI檔案的幾個Windows API函式
在開發應用程式時,我們可以建立應用程式自己的INI檔案,透過INI檔案儲存應用程式的一些執行環境資訊,然後在程式中讀取INI檔案中的設定資訊並據以處理。一旦程式的執行環境需要變更,則可以透過直接修改INI檔案或在程式中提供專門的介面間接地修改INI檔案來保證程式的可用性。
VB()語言是近年來十分流行的一種面向的語言,但VB本身並不提供操縱INI檔案的函式。所幸的是, VB支援DLL(Dynamic Link Library)的呼叫。(一個DLL事實上就是一個可供其它支援DLL呼叫的應用程式呼叫的外部函式集。)DLL中的函式稱為API(應用程式設計介面,Application Programming Interface)函式。我們可以透過呼叫相應的API函式來實現操縱INI檔案的功能。下面列出了相關的API函式及其說明。在使用這些函式之前,必須首先在VB的模組檔案(.bas)中用Declare語句對它們進行宣告。
三、例項分析
下面就筆者參加天津財經學院教學辦公自動化(OA)系統開發的實踐介紹一下具體的實現方法。假定專案檔案為man.mak,對應的INI檔案為man.ini,其部分內容如下:
[]
檔名=DEC_LX5120OA.mdb
[開戶銀行]
型別數=3
B1=中國人民銀行
B2=中國農業銀行
B3=中國工商銀行
1. 在程式啟動時(SUB MAIN()和SUB FORM_LOAD()),從man.ini檔案中讀取相應的值並進行以後的操作。其中SUB MAIN()中的有關程式碼如下:
Dim DbName as String*255 '資料庫名
Dim n as Integer
'得到INI檔名,INIfileName為一全域性變數
INIfileName=App.Path&""&app.ExeName&".ini"
'從man.ini中讀取資料庫檔名
n=GetPrivateProfileString("資料庫","檔名","",DbName,Len(DbName),INIfileName)
DbName=Left(DbName,n)
'開啟資料庫,Db為一全域性變數
Set Db=OpenDatabase(DbName)
在FORM_LOAD()過程中,讀取了man.ini中有關的內容並加入相應的組合框(Combo Box)列表中。這裡只給出對"[開戶銀行]"段的相應操作,程式碼如下:
Dim BankCount as Integer '銀行型別數
Dim BankName as String*255 '銀行名
Dim i as Integer,n as Integer
'讀取原有銀行型別數
BankCount=GetPrivateProfileInt("開戶銀行","型別數",0,INIfileName)
'讀取銀行名並加入到組合框cmbBank中
For I=1 to BankCount
n=GetPrivateProfileString("開戶銀行","B"&i,BankName,Len(BankName),INIfileName)
BankName=Left(BankName,n)
cmbBank.AddItem BankName
Next I
2. 在程式中提供了一個專用維護介面,該介面透過操作INI檔案的相應內容來實現相應的修改。
'下面程式碼實現資料庫路徑的修改
Dim n as Integer
'txtDbName.Text對應新的資料庫檔名
If txtDbName.Text="" Then
MsgBox "資料庫檔名不能為空!",MB_ICONSTOP,App.Title
txtDbName.SetFocus
Exit Sub
Else
'修改資料庫檔名
n=WritePrivateProfileString("資料庫","檔名",txtDbName.Text,INIfileName)
End If
'下面程式碼往組合框"開戶銀行"中增加一個新銀行
Dim NewBank as String '新銀行名
Dim BankCount as Integer '銀行型別數
Dim I as Integer,n as Integer
'輸入新銀行名
NewBank=InputBox("增加開戶銀行。",App.Title,"")
If NewBank="" Then
MsgBox "銀行名不能為空!",MB_ICONSTOP,App.Title
Exit Sub
Else
'判斷輸入的銀行名是否已存在於列表中
For I=0 to cmbBank.ListCount-1
If NewBank=cmbBank.List(i) Then
'存在則終止
MsgBox NewBank&"已存在於列表中!",MB_ICONSTOP,App.Title)
Exit Sub
End If
Next I
'讀取原銀行型別數
BankCount=GetPriVateProfileInt("開戶銀行","型別數",0,INIfileName)
'將銀行型別數增1
BankCount=BankCount+1
n=WritePrivateProfileString("開戶銀行","型別數",Str(BankCount),INIfileName)
'將新銀行名寫入INI檔案中
n=WritePrivateProfileString("開戶銀行","B"&BankCount,NewBank,INIfileName)
End If
四、結論
綜上所述,在實際的VB應用程式開發中,適當地利用INI檔案,可以很好地改善程式的可維護性和可用性。尤其在資料庫訪問中使用INI檔案可使在資料庫路徑改變時免去修改原始碼之苦。在實際開發中,若結合一定的維護介面,也可使應用程式容易維護,增強友好性。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988217/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VB讀寫ini檔案 (轉)
- VB原始碼推薦:一個操作Ini檔案的類 (轉)原始碼
- 在VB中使用檔案物件 (轉)物件
- VB.NET 讀寫ini檔案
- Symbian中ini檔案的使用
- VB中檔案操作的兩種方式 (轉)
- VB.net中HOOK的應用(二) (轉)Hook
- 非Access資料庫在VB的程式設計及應用 (轉)資料庫程式設計
- 在VB中實現任意檔案的16進位制方式察看 (轉)
- 從VB 6到VB.NET——窗體特殊應用 (轉)
- delphi讀取ini檔案 (轉)
- Attribute在.net程式設計中的應用(一) (轉)程式設計
- 雙緩衝在畫板程式中的應用(一) (轉)
- 軟體專案的推進中的幾點體會(轉)
- 在應用程式中將OJB作為一個儲存層使用(一) (轉)
- 在你的VB.NET應用程式中使用多執行緒 (轉)執行緒
- Symbian中操作ini檔案
- 在VB中實現窗體的動態效果 (轉)
- 我學習使用java的一點體會 (轉)Java
- ini檔案解析c庫(iniparser)【轉】
- 專案管理在企業中的應用(轉)專案管理
- 關於專案管理的一點體會-轉載專案管理
- .net6+ 在單檔案應用程式中獲取程式集位置
- 用例設計在軟體開發專案計劃中的應用(轉)
- 軟體專案管理在小軟體專案中的應用專案管理
- 在應用程式中將OJB作為一個儲存層使用(二) (轉)
- 在應用程式中將OJB作為一個儲存層使用(三) (轉)
- 在應用程式中將OJB作為一個儲存層使用(四) (轉)
- 在應用程式中將OJB作為一個儲存層使用(六) (轉)
- 在應用程式中將OJB作為一個儲存層使用(五) (轉)
- ASR專案實戰-任務佇列在檔案轉寫特性中的應用佇列
- Vector在Java程式設計中的應用 (轉)Java程式設計
- 我學習使用java的一點體會(2) (轉)Java
- 我學習使用java的一點體會(3) (轉)Java
- 我學習使用java的一點體會(5) (轉)Java
- 我學習使用java的一點體會(4) (轉)Java
- 我學習使用java的一點體會(8) (轉)Java
- 使用C#讀寫ini檔案C#