国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

在VB應(yīng)用程序中使用INI文件的一點體會

2019-11-18 17:32:33
字體:
供稿:網(wǎng)友
一、INI文件概述

  WindowsINI文件,可解釋為Windows初始化文件。它是一種專門用來保存應(yīng)用程序初始化信息和運行環(huán)境信息的文本文件。例如Windows3.1中兩個著名的INI文件win.ini和system.ini就在Windows啟動時定義了Windows環(huán)境中鼠標響應(yīng)速度、使用的外殼(shell)程序等設(shè)置。Windows系統(tǒng)附帶的許多應(yīng)用程序也都有自己的INI文件,例如控制面板的INI文件為control.ini,它也同樣定義了控制面板的有關(guān)設(shè)置。ini文件是一種文本文件,它可以通過Notepad等文本編輯器進行編輯。ini文件具有特定的格式。一個INI文件是由若干個段(section)組成的,每個段中包含若干關(guān)鍵字(key)及相應(yīng)的值(value)。段的格式如下:

[SectionName]
KeyName=Value

其中SectionName和KeyName分別是段名和關(guān)鍵字名,Value為關(guān)鍵字對應(yīng)的設(shè)定值。需要加以注意的是:

(1)段名必須加以"["和"]",且"["必須在屏幕的第一列;
(2)關(guān)鍵字名也必須從屏幕的第一列開始書寫,且后面必須緊跟"=";
(3)可以對文件加以注釋,每行注釋須以";"開頭。

  在Windows中,可以通過手工編輯INI文件來改變應(yīng)用程序設(shè)置。如要想將Windows的外殼程序改為文件管理器,則可將system.ini中[boot]段下的"shell=
二、在VB中操作INI文件的幾個WindowsAPI函數(shù)

  在開發(fā)應(yīng)用程序時,我們可以創(chuàng)建應(yīng)用程序自己的INI文件,通過INI文件保存應(yīng)用程序的一些運行環(huán)境信息,然后在程序中讀取INI文件中的設(shè)置信息并據(jù)以處理。一旦程序的運行環(huán)境需要變更,則可以通過直接修改INI文件或在程序中提供專門的界面間接地修改INI文件來保證程序的可用性。

  VB(VisualBasic)語言是近年來十分流行的一種面向?qū)ο蟮木幊陶Z言,但VB本身并不提供操縱INI文件的函數(shù)。所幸的是,VB支持DLL(DynamicLinkLibrary)的調(diào)用。(一個DLL事實上就是一個可供其它支持DLL調(diào)用的應(yīng)用程序調(diào)用的外部函數(shù)集。)DLL中的函數(shù)稱為API(應(yīng)用編程接口,
applicationProgrammingInterface)函數(shù)。我們可以通過調(diào)用相應(yīng)的API函數(shù)來實現(xiàn)操縱INI文件的功能。下面列出了相關(guān)的API函數(shù)及其說明。在使用這些函數(shù)之前,必須首先在VB的模塊文件(.bas)中用Declare語句對它們進行聲明。



三、實例分析

  下面就筆者參加天津財經(jīng)學(xué)院教學(xué)辦公自動化(OA)系統(tǒng)開發(fā)的實踐介紹一下具體的實現(xiàn)方法。假定項目文件為man.mak,對應(yīng)的INI文件為man.ini,其部分內(nèi)容如下:

[數(shù)據(jù)庫]
文件名=//DEC_LX5120/DB/OA.mdb
[開戶銀行]
類型數(shù)=3
B1=中國人民銀行
B2=中國農(nóng)業(yè)銀行
B3=中國工商銀行

1.在程序啟動時(執(zhí)行SUBMAIN()和SUBFORM_LOAD()),從man.ini文件中讀取相應(yīng)的值并進行以后的操作。其中SUBMAIN()中的有關(guān)代碼如下:

DimDbNameasString*255'數(shù)據(jù)庫名
DimnasInteger
'得到INI文件名,INIfileName為一全局變量
INIfileName=App.Path&"/"&app.ExeName&".ini"
'從man.ini中讀取數(shù)據(jù)庫文件名
n=GetPrivateProfileString("數(shù)據(jù)庫","文件名","",DbName,Len(DbName),INIfileName)
DbName=Left(DbName,n)
'打開數(shù)據(jù)庫,Db為一全局變量
SetDb=OpenDatabase(DbName)
在FORM_LOAD()過程中,讀取了man.ini中有關(guān)的內(nèi)容并加入相應(yīng)的組合框(ComboBox)列表中。這里只給出對"[開戶銀行]"段的相應(yīng)操作,代碼如下:
DimBankCountasInteger'銀行類型數(shù)
DimBankNameasString*255'銀行名
DimiasInteger,nasInteger
'讀取原有銀行類型數(shù)
BankCount=GetPrivateProfileInt("開戶銀行","類型數(shù)",0,INIfileName)
'讀取銀行名并加入到組合框cmbBank中
ForI=1toBankCount
n=GetPrivateProfileString("開戶銀行","B"&i,BankName,Len(BankName),INIfileName)
BankName=Left(BankName,n)
cmbBank.AddItemBankName
NextI

2.在程序中提供了一個專用維護界面,該界面通過操作INI文件的相應(yīng)內(nèi)容來實現(xiàn)相應(yīng)的修改。

'下面代碼實現(xiàn)數(shù)據(jù)庫路徑的修改
DimnasInteger
'txtDbName.Text對應(yīng)新的數(shù)據(jù)庫文件名
IftxtDbName.Text=""Then
MsgBox"數(shù)據(jù)庫文件名不能為空!",MB_ICONSTOP,App.Title
txtDbName.SetFocus
ExitSub
Else
'修改數(shù)據(jù)庫文件名
n=WritePrivateProfileString("數(shù)據(jù)庫","文件名",txtDbName.Text,INIfileName)
EndIf

'下面代碼往組合框"開戶銀行"中增加一個新銀行
DimNewBankasString'新銀行名
DimBankCountasInteger'銀行類型數(shù)
DimIasInteger,nasInteger
'輸入新銀行名
NewBank=InputBox("增加開戶銀行。",App.Title,"")
IfNewBank=""Then
MsgBox"銀行名不能為空!",MB_ICONSTOP,App.Title
ExitSub
Else
'判斷輸入的銀行名是否已存在于列表中
ForI=0tocmbBank.ListCount-1
IfNewBank=cmbBank.List(i)Then
'存在則終止
MsgBoxNewBank&"已存在于列表中!",MB_ICONSTOP,App.Title)
ExitSub
EndIf
NextI
'讀取原銀行類型數(shù)
BankCount=GetPriVateProfileInt("開戶銀行","類型數(shù)",0,INIfileName)
'將銀行類型數(shù)增1
BankCount=BankCount 1
n=WritePrivateProfileString("開戶銀行","類型數(shù)",Str(BankCount),INIfileName)
'將新銀行名寫入INI文件中
n=WritePrivateProfileString("開戶銀行","B"&BankCount,NewBank,INIfileName)
EndIf

四、結(jié)論

  綜上所述,在實際的VB應(yīng)用程序開發(fā)中,適當(dāng)?shù)乩肐NI文件,可以很好地改善程序的可維護性和可用性。尤其在數(shù)據(jù)庫訪問中使用INI文件可使用戶在數(shù)據(jù)庫路徑改變時免去修改原代碼之苦。在實際開發(fā)中,若結(jié)合一定的維護界面,也可使應(yīng)用程序容易維護,增強友好性。->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊春市| 久治县| 甘谷县| 绩溪县| 徐州市| 宜良县| 东乡| 屏山县| 青海省| 于田县| 三明市| 郎溪县| 剑河县| 石屏县| 武宁县| 南安市| 双鸭山市| 无棣县| 潜江市| 吴江市| 宜兰县| 新余市| 铁岭市| 科尔| 吉隆县| 革吉县| 洱源县| 定结县| 棋牌| 台东市| 无极县| 剑川县| 高州市| 莲花县| 理塘县| 论坛| 同心县| 浦城县| 靖安县| 东辽县| 济源市|