VB开发应用程序如何使用INI文件_第1页
VB开发应用程序如何使用INI文件_第2页
VB开发应用程序如何使用INI文件_第3页
VB开发应用程序如何使用INI文件_第4页
VB开发应用程序如何使用INI文件_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用VB开发应用程序如何使用INI文件为了方便用户使用和使系统具有灵活性,大多数Win-dows应用程序将用户所做的选择以及各种变化的系统信息记录在初始化(INI文件中。因此,当系统的环境发生变化时,可以直接修改INI文件,而无需修改程序。由此可见,INI文件对系统功能是至关重要的。本文将介绍采用VisualBasicforWindows(下称VB开发Windows应用程序时如何读写INI文件。INI文件是文本文件,由若干部分(section组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword和一个等号,每个关键词会控制应用程序某个功能的工作方式,等号右边的值(value

2、指定关键词的操作方式。其一般形式如下:Section1KeyWord1=ValuelKeyWord2=Value2Section2KeyWord1=Value1KeyWord2=Value2其中,如果等号右边无任何内容(即Value为空,那就表示Windows应用程序已为该关键词指定了缺省值,如果在整个文件中找不到某个关键词(或整个一部分,那同样表示为它们指定了缺省值。各个部分所出现的顺序是无关紧要的,在每一个部分里,各个关键词的顺序同样也无关紧要。读写INI文件通常有两种方式:一是在Windows中用“记事本”(Notepad对其进行编辑,比较简单,无需赘述;二是由Windows应用程序读写

3、INI文件,通常是应用程序运行时读取INI文件中的信息,退出应用程序时保存用户对运行环境的某些修改。关键词的值的类型多为字符串或整数型,应分两种情况读写。为了使程序具有可维护性和可移植性,最好把对INI文件的读写封装在一个模块(RWINI.BAS中,在RWI-NI.BAS中构造GetIniS和GetIniN函数以及SetIniS和Se-tIniN过程,在这些函数和过程中需要使用WindowsAPI的“GetPrivateprofileString”、“GetPrivateProfileInt”和“WritePrivateProfileString”函数。RWINI.BAS模块的程序代码如下:在

4、General-Declearation部分中声明使用到的WindowsAPI函数:Public Declare Function GetprivateprofileString Lib“Kernel”(ByVal lpAppName As String,ByVal lpKeyName As _String,ByVal lpDefault As String,ByVal lpRetrm-String As String,ByVal cbReturnString As Integer, _ByVal Filename As StringAs IntegerPublic Declare Funct

5、ion GetPrivatePfileInt Lib“Kernel”(ByVal lpApp e As String,ByVal lpKeyName As String, _ByVal lpDefault As Integer,ByVal Filename As StringAs IntegerPublic Declare Funciton WritePrivateprofileString Lib“Kernel”(ByVal lpApplicationName As String, _ByVal lpKeyName As String,ByVal lpString As String,ByV

6、al lplFileName As StringAs IntegerPublic Function GetIniS(ByVal SectionName As String,ByValKeyWord As String,ByVal DefString As StringAs StringDim ResultString As String*144,Temp As IntegerDim s As String,i As IntegerTemp%=GetPrivateProfileString(SectionName,KeyWord,"",ResultString,144,App

7、Pro fileName(检索关键词的值If Temp%>0 Then 关键词的值不为空s=""For i=1 To 144If Asc(Mid$(ResultString,I,1=0 ThenExitForElses=s & Mid$(ResultString,I,1End IfNextElseTemp%=WritePrivateProfilesString(sectionname,KeyWord,DefString,ppProfileNam e(将缺省值写入INI文件s=DefStringEnd IfGetIniS=sEnd FunctionPublic

8、Function GetIniN(ByVal SectionName As String,ByVal KeyWord As String,ByVal DefValue As InegerAs IntegerDim d As Long,s As Stringd=DefValueGetIniN=GetPrivateProfileInt(SectionName,KeyWord,DefValue,ppProfileName(If d<>DefValue Thens=""d=WritePrivateProfileString(SectionName,KeyWord,s,A

9、ppProfileName(End IfEnd FunctionPublic Sub SetIniS(ByVal SectionName As String,BtVal KeyWord As String,ByVal ValStr As StringDim res%res%=WritePrivateprofileString(SectionName,KeyWord,ValStr,AppProfileName(End Sub Public Sub SetIniN(ByVal SectionName As String,ByVal KeyWord As String,ByVal ValInt As

10、 Integer Dim res%,s$ s$=Str$(ValInt res%=WriteprivateProfileString(SectionName,KeyWord,s$,AppProfileName( End Sub SectionName 为每一部分的标题,KeyWord 为关键词,GetIniS 和 GetIniN 中的 DefValue 为关键词的缺省值,SetIniS 和 SetIniN 的 ValStr 和 ValInt 为要写入 INI 文件的关键词的值。 为了能更好地说明如何使用以上函数和过程,下面举两个实例。 实例 1: 开发应用程序通常要使用数据库和其它一些文件,这

11、些文件的目录(包括路径和文件名 不应在程序中固定,而是保存在 INI 文件中,程序运行时由 INI 文件中读入。读入数据库文件 的代码如下: Dim Databasename As String Databasename=GetIniS(“数据库”,“职工”,"" If DatabaseName="" Then DatabaseName=InputBox(“请输入数据库职工的目 录”,App.Title 也可通过“文件对话框”进行选择 On Error Resume Next Set db=OpenDatabas(DatabaseName If Err0 Then MsgBox“打开数据库失败!”,MB-ICONSTOP,App.Title:GotoErrorProcessing Else Set IniS“数据库”,“职工”,DatabaseName End If On Error GoTo 0 实例 2: 为了方便用户操作,有时需要保存用户界面的某些信息,例如窗口的高度和宽度等。装载 窗体时,从 INI 文件中读入窗体高度和宽度,卸载窗体时将窗体当前高度和宽度存入 INI 文件, 代码如下: Private S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论