第九章 文件
[学习目标 ]
? 掌握:文件控件和文件操作
? 理解:文件类型及结构
[学习要点 ]
? 文件处理函数
? 利用文件控件处理文件的方法。
文件是存储在外部介质(如磁盘)上的以文
件名标识的数据的集合。通常由一组存放在磁盘
上的相关字节组成。当应用程序要访问文件时,
必须自己决定文件中字节的意义(比如,表示字
符、数据记录、整数、字符串等等)。
存储在磁盘上的文件称为磁盘文件,与计算
机相连的设备称为设备文件。这些文件都不在计
算机内,统称为外部文件。
9.1文件处理语句和函数
Visual Basic提供了对文件的读写访问能力。
为能有效地存取数据,访问文件时,应根据文件
中存储的数据的不同数据类型,采用不同的方法
进行访问。
在 Visual Basic中,有 3种文件访问类型:
? 顺序型:用于读写连续的文本文件。
? 随机型:用于读写有固定长度记录结构的
文本文件或者二进制文件。
? 二进制型:用于读写任意带结构的文件。
9.1文件处理语句和函数
在 VB中,根据文件的结构和访问方式,文件分
成:
? 顺序文件
? 随机文件
? 二进制文件
文件在存储介质上的位置是依赖于驱动器名、
文件夹(目录)和文件名来定位的。
为访问存放在外部介质上的数据,应先按文
件名找到所指定的文件,然后再从该文件中读取
数据。
9.1文件处理语句和函数
虽然这 3种文件访问的数据类型不同,但应用
程序访问它们的步骤却相似:
① 使用 Open语句打开文件,并为文件指定一
个文件号。对文件进行任何 I/O操作之前,都必须
经过这步操作。
② 从文件中读取部分或全部数据到变量中。
③ 对变量中的数据进行处理。
④ 将处理后的数据保存回文件中。
⑤ 使用 Close语句关闭文件。如果没有关闭
文件,则会导致文件中部分或全部信息丢失。
9.1文件处理语句和函数
9.1.1 与文件系统相关的语句
1.ChDir 语句
格式,ChDir path
功能:改变当前目录。
例如,ChDir "D:\TMP
2,ChDrive 语句
格式,ChDrive drive
功能:改变当前驱动器
说明:如果 drive为,”,则当前驱动器将不会
改变;如果 drive中有多个 字 符,则 ChDrive只会使
用首字母。
9.1文件处理语句和函数
3,MkDir 语句
格式,MkDir path
功能:创建一个新的目录。
4,RmDir 语句
格式,RmDir path
功能:删除一个存在的目录
说明:只能删除空目录。
5.FileCopy语句
格式,FileCopy source,destination
功能:复制一个文件。
说明,FileCopy语句不能复制一个已打开的文
件。
9.1文件处理语句和函数
6.Name 语句
格式,Name oldpathname As newpathname
功能:重新命名一个文件或目录。
说明:
(1) Name具有移动文件的功能。
(2) 不能使用统配符, *” 和,?”,不能对一
个已打开的文件上使用 Name语句。
7.Kill语句
格式,Kill pathname
功能:删除文件。
说明,pathname中可以使用统配符, *” 和
,?”。
例如,Kill "*.TXT"
9.1文件处理语句和函数
8.关闭文件 ——reset
reset语句用于关闭 open语句打开的所有活动
文件,并将文件缓冲区的所有内容写入磁盘。
9.设置有关文件属性的信息 ——settattr
settattr语句用来为一个文件设置属性。 VB
中的文件可分为以下 5种。
①系统文件:由有关操作系统及其他系统程
序信息组成,它对用户不直接开放,而只能通过
系统调用为用户服务。
②隐含文件:在磁盘上实际存在,但用户通
过文件目录列不出来。
③只读文件:只能供用户读取,但不能想文
件写入信息。
9.1文件处理语句和函数
④ 普通文件:可对该类文件进行 任意读写访
问。
⑤存档文件:标志文件是否被修改过,当新
建或修改文件时,系统会自动设置文件的存档属
性,它不影响文件的存取,只表明文件内容被更
新,它提供了一种快速检索文件的方法。
settattr语句的语法格式为:
settattr”文件名,,attributes
其中,attributes为必选参数,是常数或数
值表达式,其总和用来表示文件的属性。
9.1文件处理语句和函数
Attributes参数设置说明表
常数
vbhidden
vbsystem
vbarchive
vbreadonly
vbnormal
值
0
1
2
4
32
描述
常规(缺省值)
只读
隐藏
系统文件
上次备份以后,文件已经改变
9.1文件处理语句和函数
9.1.2 与文件系统相关的函数
1,返回当前路径 —— curdir
curdir函数赶会一个 variant( string),
用它来代表当前的路径。其语法格式如下:
curdir[( drive) ]
“drive”是可选参数,为一个字符串表达式。
它指定一个存在的驱动器。如果没有指定驱动器,
或, drive”是零长字符串(,” ),则 vurdir会
返回当前驱动器的路径。
2.返回文件的日期、时间 ——filedatetime
filedatetime返回一个 variant( date),此
为一个文件被创建或最后修改后的日期或时间。
9.1文件处理语句和函数
语法格式为:
filedatetime( pathname)
pathname为必选参数,是用来指定一个文件
名的字符串表达式。 Pathname可以包含目录或文
件以及驱动器。
3,返回文件、目录或文件夹属性 —— getattr
getattr函数返回一个整型值,此值为一个文
件、目录或文件夹的属性。语法格式为:
getattr( pathname)
4,返回文件长度 —— filelen
filelen函数返回一个长整型数值,代表一个
文件的长度,单位是字节。
9.1文件处理语句和函数
语法格式为:
filelen( pathname)
注意:当调用 filelen函数时,如果所指定的
文件已经打开,则返回的值是这个文件在打开前
的大小。
5.返回文件名或磁盘标签 —— dir
dir函数返回一个字符串类型,用以表示一个
文件名、目录或文件夹名,它必须与指定的模式
或文件属性、磁盘卷标相匹配。
在第一次调用函数时,必须给出路径名参数,
每次调用该函数时仅返回一个与参数相匹配的文
件名,以后再调用时可省略参数。
dir函数语法格式为:
dir[( pathname[,attributes])
9.1文件处理语句和函数
6,行文件函数 —— shell
shell函数用于执行一个可执行文件。如果程
序执行成功,则返回程序的任务句柄,若不成功,
则返回 0。任务句柄是一个唯一的数值,用来指明
正在运行的程序。语法格式为:
shell(pathname[,windowstyle])
其中,,pathname”与前面函数中参数的含义
相同。可选参数, windowstyle”表示在运行程序
后窗口的样式。如果省略 windowstyle,则程序是
以具有焦点的最小化窗口来执行的 。
9.1文件处理语句和函数
windowstyle参数说明表
vbhide 0 窗口被隐藏,且焦点会被移到隐式窗口
值常量 描 述
vbnormalfoc
us
vbminmized
fovus
vbmaximize
dfovus
vbnormalnof
ocus
Vbminimize
dnofovus
1
2
3
4
6
窗口具有焦点,且会还原到它原来的大小和位置
窗口会以一个具有焦点的图表来显示
窗口是一个具有焦点的最大化窗口
窗口会被还原到最近使用的大小和位置,当前活动的窗
口仍然保持活动
窗口会以一个图表来显示,当前活动的窗口仍然保持活
动
9.1文件处理语句和函数
顺序文件是一种适用于在连续块中读写的文
本文件。这种文件中的数据由文本字符组成。这
些字符既可以是 ASCII码字符集中的可显示字符,
也可以是汉字字符。
顺序文件按行组织,每一行的结尾由, 回车,
和, 换行, 字符指示。在顺序文件中,只知道第
一个记录的存放位置,其他的记录无从知晓。当
要查找某项数据时,只能从文件的开头,一个记
录一个记录的顺序查找,直到找到所需记录为止。
,回车, 字符的 ASCII码为 13,,换行, 字符的
ASCII码为 10。
当用户要处理只包含文本的文件时,比如由
文本编辑器创建的文件,最好使用顺序型访问。
9.2 顺序文件
一,打开顺序文件
Open,文件名, [For 模式 ] As [#]文件号 [Len=记录长
度 ]
其中:
(1) 模式
OUTPUT:写操作
INPUT:读操作
APPEND:追加到文件未尾
(2) 文件号
1~ 511,可以用 FreeFile函数获得下一个可利用的文件号。
(3) 记录长度
小于或等于 32767的整数,它指定数据缓冲区的大小。
例如:打开 C:\VB\SCORE,供写入数据,指定文件号为 #1。
OPEN "C:\VB\SCORE" FOR OUTPUT AS #1
9.2 顺序文件
二、读顺序文件
1,Input #语句
格式,Input #文件号,变量列表
功能:从已打开的顺序文件中读出数据,并将数据
指定给用逗号分界的变量列表中的变量。
2,Line Input #语句
格式,Line Input #文件号,字符串变量
功能:从已打开的顺序文件中读出一行并将它分配
给字符串变量。
3,Input()函数
格式,INPUT$(读取字符数,#文件号 )
功能:读取以 Input 或 Binary 方式打开的文件中
的指定数目的字符。
9.2 顺序文件
例题:读文本文件到文本框
假定文本框名称为 txtTest,文件名为 MYFILE.TXT。
常用的函数:
LOF(文件号 ):返回文件的长度 (总字节数 )。
EOF(文件号 ):返回读写位置。
文件未到结尾时,EOF函数为 True,否则为 False
解法:
方法 1:一行一行读
txtTest.Text = ""
Open "MYFILE.TXT" For Input As #1
Do While Not EOF(1)
Line Input #1,InputData
txtTest.Text = txtTest.Text + InputData+vbCrLf
Loop
Close #1
9.2 顺序文件
方法 2:一次性读
txtTest.Text = ""
Open "MYFILE.TXT" For Input As #1
txtTest.Text = Input( LOF(1),1)
Close #1
方法 3:一个个字符读
Dim InputData as String*1
txtTest.Text = ""
Open "MYFILE.TXT" For Input As #1
Do While Not EOF(1)
InputData= Input(1,#1)
txtTest.Text = txtTest.Text + InputData
Loop
Close #1
9.2 顺序文件
三、写顺序文件
要在顺序文件中写入变量的内容时,应以
Output或 Append方式打开它。
当以 Output模式打开文件时,写操作语句从
数据文件的最前面开始写入。如果文件已存在,
则文件中原来的内容会被覆盖;若文件不存在,
则会建立一个新文件,将数据从头开始写入。
当文件以 Append模式打开时,如果文件已经
存在,则在写入数据时不会将原来的数据覆盖,
而是从文件末尾开始,将新数据添加到文件中。
在将数据写入文件时,应根据是否要覆盖原
文件来选择不同的文件打开模式。
9.2 顺序文件
1.写入命令
格式,Print #文件号,[输出列表 ]
功能:将格式化显示的数据写入顺序文件中。
2,Write #语句
格式,Write #文件号,[输出列表 ]
功能:将数据写入顺序文件。
例如:命令,Write #1,"One","Two",123
内容,"One","Two",123
注意:
与 Print # 语句不同,当要将数据写入文件时,
Write # 语句采用紧凑格式,即数据项之间插入,,”,没
有必要在列表中键入明确的分界符。 Write # 语句在将
outputlist 中的最后一个字符写入文件后会插入一个新行
字符,即回车换行符。
9.2 顺序文件
例题:将文本框的内容写到文本文件中
假定文本框的名称为 txtTest,文件名为 TEST.DAT。
方法 1,把整个文本框的内容一次性地写入文件。
Open "TEST.DAT" For Output As #1
Print #1,txtTest.Text
Close #1
方法 2,把整个文本框的内容一个字符一个字符地写入文
件。
Open "TEST.DAT" For Output As #1
For i=1 To len(txtTest.Text)
Print #1,Mid(txtTest.Text,i,1);
Next i
Close #1
9.2 顺序文件
四、关闭顺序文件
格式,Close [[#]文件号 ][,[#]文件号 ]...
功能:语句用于关闭使用 Open 语句所打开的输入 /输
出文件。
例如,Close #1,#2,#3
注意:
若省略 Close关键字后的内容,则将关闭 Open 语句
打开的所有活动文件。
即使没有 Close语句,当程序结束时,也将自动关闭
所有打开的文件。但是 Close语句还是必要的,如果不使
用 Close语句,可能会使得某些需要写入的数据不能从内
存写入文件中。当打开的文件或设备正在输出时,执行
Close语句并不会使输出信息的操作中断。
9.2 顺序文件
例 9.1 顺序文件的使用示例
本程序演示顺序文件的读写操作,程序运行
示意如图 9.1所示。该程序可以打开一个顺序文件,
将其内容存入文本框中进行修改,并可以保存修
改。改成可以将文本框的内容在磁盘上建立一个
顺序文件。
9.2 顺序文件
9.2 顺序文件
设置控件事件代码如下:
? Private Sub Command1_Click()
?本过程完成文件的读取功能
? Dim File1
? Dim nextline As String
? CommonDialog1.Filter=
?Text Files(?.txt)|?.txt?
?指定默认文件类型
? CommonDialog1.ShowOpen
?调用以 CommonDialog1控件打开的对话框,以输入要
打开的文件名
? File1=CommonDialog1.filename
?将打开对话框提供的文件名赋予变量 File1
9.2 顺序文件
? Open File1 For Input As #1
?按读方式打开
?下面循环可以用语句, Text1.text=Input(LOF(1),1)”替代
? Do Until EOF(1)
?将打开文本文件的内容赋予文本框
? Line Input #1,nextline
? Text1.Text=Text1.Text+nextline+Chr(13)+Chr(10)
? Loop
? Close 1 ?关闭打开的文件
? End Sub
9.2 顺序文件
? Private Sub Command2_Click()
?本过程完成将文本框的内容写入文件中
? Dim contents,File1
? CommonDialog1.showSave ?调用 CommandDialog1控
件的保存对话框,以提供建立文件的文件名
? File1=CommonDialog1.filename
? Open File1 For Output As #1 ?以写方式打文件
? Contents=Text1.Text
? Text1.Text=? ? ?清除文本框中的内容
? Print #1,Contents ?往文件中写入内容
? Close 1
? End Sub
? Private Sub Command3_Click()
? Unload Me ?退出程序
? End Sub
9.2 顺序文件
9.3 随机文件
在文件中以顺序文件方式进行存取数据很方
便也很常用,但是当需要大量查找或修改文件中
的数据时会很困难,而这时采用随机文件方式存
取数据就显得比较方便。
随机文件的每一个数据项都有相同的长度,
它的数据项通常称做记录。随机文件是以记录为
单位的,每条记录都被赋予了记录号以便查找。
应用程序可以根据记录号直接读取随机文件中的
任意记录,而无须由前至后逐个读取记录。
对随机文件的存取是以记录为单位进行的,
每个记录包括一个或多个字段。具有一个字段的
记录对应于任一标准类型,比如整数或定长字符
串。具有多个字段的记录对应于用户自定义类型。
9.3.1 声明记录类型变量
在打开一个文件进行随机访问之前,应定义
一个类型,该类型对应于该文件包含或将包含的
记录。
语法格式为:
[Private|Public] Type 自定义类型名
元素名 As type
[元素名 As type]
…
End Type
9.3 随机文件
例如,声明一个学生自定义类型。
Type Student
Number As String ?2
?学号,宽度为 2字节
Name As String ?8
?姓名,宽度为 8字节
Score As Integer
?成绩,宽度为 2字节
End Type
9.3 随机文件
在定义与记录对应的类型以后,应接着声明
程序需要的任何其他变量,用来处理作为随机访
问而打开的文件。如:
Public student1,student2 As student
?定义记录变量
Public stnume As Integer
?定义存放当前记录号的变量
Public LastRecord As Long
?存放最后一条记录的编号
9.3 随机文件
例如:
? Dim Lastrecord As Long
?存放最后一个记录的编号
? Dim student1 As student
? Dim RecLength as Long
? RecLength=Len(student1)
? 计算每条记录的长度
? FileNum=FreeFile()
?取出下一个可用文件编号
? Open ?School,dat? For Random As FileNum
Len=RecLength ?用 Open语句打开新文件
? LastRecord=LOF(FileNum)/RecLength
?存放文件中记录的个数
9.3 随机文件
9.3.2 随机文件的操作
一、打开
格式:
Open "文件名 " For Random As #文件号 [Len=
记录长度 ]
二、读操作
1.格式:
Get [#]文件号,[记录号 ],变量名
2.功能:
将一个已打开的磁盘文件的一条记录的内容读入一个
变量之中。
忽略记录号,则读出当前记录后的那一条记录。
9.3 随机文件
下面的例子使用 Get语句来将数据从文件读到
变量中
? Dim Student1 As Student,Position As Long
? ?声明变量
? Open ?School.dat? For Random As #1
?为随机访问打开样本文件
? Len=Len(Student1)
?使用 Get语句来读样本文件
? Position=4 ?定义记录号
? Get #1,Position,Student1
?读第 4个记录到变量 Student1中
? Close #1 ?关闭文件
9.3 随机文件
三、写操作
1.格式,Put [#]文件号,[记录号 ],变量名
2.功能:将一个变量的数据写入磁盘文件中,将
一个记录变量的内容写到指定的记录位置处。
忽略记录号,则表示在当前记录后的位置插入一
条记录。
9.3 随机文件
1,替换记录
2,添加记录
【 例 9.2】 往随机文件中添加记录 。
3,删除记录
【 例 9.3】 将, Student97.dat”随机文件的
第 n条记录删除 。
4.随机文件的浏览操作
【 例 9.4】 用滚动条控件在随机文件中进行
定位操作 。
9.3 随机文件
二进制文件是一个字节流,文件系统并不解释各
字节的意义,解释工作由具体的应用程序完成。
以二进制方式访问文件有下述特点:
? 可以直接访问文件中的所有数据。
? 由应用程序根据需要解释数据的意义。
? 访问文件的语句不更改原始数据的所有内容。
二进制文件每一次读写是以字节为单位对数据进
行访问操作的,它允许用户读写或修改文件中的任何
字节信息。当把二进制数据写入文件中时,使用 Byte
数据类型的数组,而不是 String变量。 String被认为
包含的是字符,而二进制型数据可能无法正确地存储
在 String变量中。
当要保持文件的尺寸尽量小时,应使用二进制文
件。
9.4 二进制文件
一、二进制文件的打开
Open "文件名 " For Binary As #文件号
二、二进制文件的写操作
Put [#]文件号,[位置 ],变量名
写入长度等于变量长度的数据。
三、二进制文件的读操作
GET [#]文件号,[位置 ],变量名
从指定位置开始读出长度等于变量长度的数据
存入变量中,数据读出后移动变量长度位置,如果
忽略位置,则表示从文件指针所指的位置开始读出
数据,数据读出后移动变量长度位置。
9.4 二进制文件
例题 文件复制
Dim char As Byte
Dim FileNum1,FileNum2 as Integer
FileNum1 = FreeFile
Open "C:\STUDENT.DAT" For Binary As # FileNum1
'打开源文件
FileNum2 = FreeFile
Open "C:\STUDENT.BAK" For Binary As # FileNum2
?打开目标文件
Do While Not EOF(FileNum1)
Get #1,,char '从源文件读出一个字节
Put #2,,char '将一个字节写入目标文件
Loop
Close #FileNum1
Close #FileNum2
9.4 二进制文件
9.5 与文件系统相关的控件
文件系统控件有三种:驱动器列表框
( DriveListBox)、目录列表框( DirListBox) 和
文件列表框( FileListBox)。
9.5.1 驱动器列表框、目录列表框、文件列表框控件
这 3个控件一般同时出现在一个界面上,用以
与用户交互管理文件系统,但 3者在界面设计阶段
仅显示当前驱动器下的目录结构及当前目录下的
文件结构,且 3者之间无任何联系,所以在程序设
计时必须通过代码将 3者有机地联系起来。
这 3种特殊文件系统能够自动地从操作系统获
取一切信息,且操作比 CommonDiaLog控件更灵活,
功能更强大。如果只需一般的对话框,则使用
CommonDiaLog控件就可以了。
9.5 与文件系统相关的控件
1,驱动器列表框
Drive属性:
[对象,]Drive [= drive]
Change事件:
重新设置 Drive属性引发 Change事件
驱动器列表框和目录列表框的同步:
dir1.Path = Drive.Drive
9.5 与文件系统相关的控件
2,目录列表框
Path属性,
[对象,]Path [= pathname]
Change事件:
重新设置 Path 属性引发 Change事件
9.5 与文件系统相关的控件
3,文件列表框
(1) 属性
Path属性:
显示该列表框下文件的路径。
重新设置 Path属性引发 PathChange事件。
Pattern属性:
显示的文件类型。
[对象,]Pattern [= value]
重新设置 Pattern属性引发 PatternChange事件。
例如,filFile.Pattern =,*.frm”,显示 *.frm文
件。
9.5 与文件系统相关的控件
FileName属性:
[对象,]FileName [= pathname]
引用时只返回文件名,相当于
filFile.List(filFile,ListIndex),需用 Path属
性得到其路径;设置时可带路径。
Multiselect属性:
是否允许用户选择多个文件。
9.5 与文件系统相关的控件
( 2)事件
PathChange事件:
重新设置 Path属性引发 PathChange事件。
PatternChange事件:
重新设置 Pattern属性引发 PatternChange事
件。
例如,filFile.Pattern =,*.frm”,显示
*.frm文件。
9.5 与文件系统相关的控件
Click事件:
例如,单击输出文件名。
Sub filFile_Click( )
MsgBox filFile.FileName
End Sub
9.5 与文件系统相关的控件
DblClick事件:
例如,双击执行可执行程序
Sub filFile_DblClick( )
ChDir (dirDirectory.Path)
? 改变当前目录
RetVal = Shell(filFile.FileName,1)
? 执行程序
End Sub
9.5 与文件系统相关的控件
( 3)目录列表框和文件列表框的同步:
File1.Path= Dir1.Path
9.5 与文件系统相关的控件
【 例 9.5】 文件系统控件的演示。
Sub drvDrive_Change()
dirDirectory.Path = drvDrive.Drive
End Sub
Sub dirDirectory_Change()
filFile.Path = dirDirectory.Path
End Sub
Sub Form_Load()
Item =,所有文件 (*.*)”
cboType.AddItem Item + Space(20 - Len(Item)) + "*.*"
Item = "窗体文件 (*.FRM)"
cboType.AddItem Item + Space(20 - Len(Item)) + "*.FRM"
Item = "位图文件 (*.BMP)"
cboType.AddItem Item + Space(20 - Len(Item)) + "*.BMP"
cboType.ListIndex = 2
End Sub
Sub cboType_Click()
filFile.Pattern = Mid(cboType.Text,21)
End Sub
Sub filFile_Click( )
┆
End Sub
Sub filFile_DblClick( )
┆
End Sub
9.5 与文件系统相关的控件
9.5.2 通用对话框控件( CommonDialog)
通用型对话框共有 6种,它们是,Open(打
开),Save As(保存文件),Print(打印)、
Color(颜色),Font(字体),Help(帮助)。
通过设置通用对话框控件的属性和使用它的
不同方法,需要打开文件时,该控件能够显示
,打开, 对话框;需要保存文件时,该控件能够
显示, 另存为, 对话框。除此之外,通用对话框
还能够显示, 颜色, 对话框,,字体, 对话框和
,打印, 对话框。
9.5 与文件系统相关的控件
一、创建通用对话框控件
通用对话框控件不是 VB6.0的内置控件,
而是一个 ActiveX控件。使用前,应该将它
们添加到工具箱中。
在 VB的工具箱中加入通用对话框控件
的具体方法是:
( 1)选择, 工程, 菜单项中的, 部件,
选项(或直接按 Ctrl+T键),或在工具箱
中单击鼠标右键,在弹出的快捷式菜单中
选择, 部件, 选项,则调出, 部件, 对话
框。
9.5 与文件系统相关的控件
( 2)该对话框中列出所有可以使用的
部件,包括, 控件,,, 设计器, 和, 可
插入对象, 。在, 控件, 选项卡中列出了
可以添加的 ActiveX控件,选择所需
ActiveX控件(此处选择, Microsoft
Common Dialog Control 6.0”列表项),单
击该控件名称左边的复选框,选中该控件。
( 3)单击, 确定, 命令按钮,关闭
,部件, 对话框,被选中的通用对话框控
件被添加到当前工程的工具箱中,图标为,
缺省名为 CommonDialogX( X为 1,2,… )。
9.5 与文件系统相关的控件
二、设置通用对话框控件的属性
在调用通用对话框的方法之前,应该
根据需要设置该控件的属性。与其它控件
相似,设置通用对话框属性的方法也有两
种:在属性窗口中设置;使用代码设置。
在属性窗口中设置通用对话框属性的
方法为:
(1) 右击窗体上的通用对话框控件,单
击弹出菜单中的“属性”菜单项,系统显
示如图所示的“属性页”对话框。
9.5 与文件系统相关的控件
(2) 当需要使用“打开”对话框或“另
存为”对话框时,在“打开 /另存为”选项
卡中设置通用对话框的属性;当需要使用
“颜色”对话框时,在“颜色”选项卡中
设置通用对话框的属性;当需要使用“字
体”对话框时,在“字体”选项卡中设置
通用对话框的属性;当需要使用“打印”
对话框时,在“打印”选项卡中设置通用
对话框的属性;当需要使用“帮助”对话
框时,在“帮助”选项卡中设置通用对话
框的属性。
9.5 与文件系统相关的控件
9.5 与文件系统相关的控件
三、调用通用对话框控件
调用这些通用对话框的方法如下:
调用打开对话框,CommonDialogX.ShowOpen
调用保存对话框,CommonDialogX.ShowSave
调用打印对话框,CommonDialogX.ShowPrinter
调用颜色对话框,CommonDialogX.ShowColor
调用字体对话框,CommonDialogX.ShowFont
调用帮助对话框,CommonDialogX.ShowHelp
9.5 与文件系统相关的控件
[学习目标 ]
? 掌握:文件控件和文件操作
? 理解:文件类型及结构
[学习要点 ]
? 文件处理函数
? 利用文件控件处理文件的方法。
文件是存储在外部介质(如磁盘)上的以文
件名标识的数据的集合。通常由一组存放在磁盘
上的相关字节组成。当应用程序要访问文件时,
必须自己决定文件中字节的意义(比如,表示字
符、数据记录、整数、字符串等等)。
存储在磁盘上的文件称为磁盘文件,与计算
机相连的设备称为设备文件。这些文件都不在计
算机内,统称为外部文件。
9.1文件处理语句和函数
Visual Basic提供了对文件的读写访问能力。
为能有效地存取数据,访问文件时,应根据文件
中存储的数据的不同数据类型,采用不同的方法
进行访问。
在 Visual Basic中,有 3种文件访问类型:
? 顺序型:用于读写连续的文本文件。
? 随机型:用于读写有固定长度记录结构的
文本文件或者二进制文件。
? 二进制型:用于读写任意带结构的文件。
9.1文件处理语句和函数
在 VB中,根据文件的结构和访问方式,文件分
成:
? 顺序文件
? 随机文件
? 二进制文件
文件在存储介质上的位置是依赖于驱动器名、
文件夹(目录)和文件名来定位的。
为访问存放在外部介质上的数据,应先按文
件名找到所指定的文件,然后再从该文件中读取
数据。
9.1文件处理语句和函数
虽然这 3种文件访问的数据类型不同,但应用
程序访问它们的步骤却相似:
① 使用 Open语句打开文件,并为文件指定一
个文件号。对文件进行任何 I/O操作之前,都必须
经过这步操作。
② 从文件中读取部分或全部数据到变量中。
③ 对变量中的数据进行处理。
④ 将处理后的数据保存回文件中。
⑤ 使用 Close语句关闭文件。如果没有关闭
文件,则会导致文件中部分或全部信息丢失。
9.1文件处理语句和函数
9.1.1 与文件系统相关的语句
1.ChDir 语句
格式,ChDir path
功能:改变当前目录。
例如,ChDir "D:\TMP
2,ChDrive 语句
格式,ChDrive drive
功能:改变当前驱动器
说明:如果 drive为,”,则当前驱动器将不会
改变;如果 drive中有多个 字 符,则 ChDrive只会使
用首字母。
9.1文件处理语句和函数
3,MkDir 语句
格式,MkDir path
功能:创建一个新的目录。
4,RmDir 语句
格式,RmDir path
功能:删除一个存在的目录
说明:只能删除空目录。
5.FileCopy语句
格式,FileCopy source,destination
功能:复制一个文件。
说明,FileCopy语句不能复制一个已打开的文
件。
9.1文件处理语句和函数
6.Name 语句
格式,Name oldpathname As newpathname
功能:重新命名一个文件或目录。
说明:
(1) Name具有移动文件的功能。
(2) 不能使用统配符, *” 和,?”,不能对一
个已打开的文件上使用 Name语句。
7.Kill语句
格式,Kill pathname
功能:删除文件。
说明,pathname中可以使用统配符, *” 和
,?”。
例如,Kill "*.TXT"
9.1文件处理语句和函数
8.关闭文件 ——reset
reset语句用于关闭 open语句打开的所有活动
文件,并将文件缓冲区的所有内容写入磁盘。
9.设置有关文件属性的信息 ——settattr
settattr语句用来为一个文件设置属性。 VB
中的文件可分为以下 5种。
①系统文件:由有关操作系统及其他系统程
序信息组成,它对用户不直接开放,而只能通过
系统调用为用户服务。
②隐含文件:在磁盘上实际存在,但用户通
过文件目录列不出来。
③只读文件:只能供用户读取,但不能想文
件写入信息。
9.1文件处理语句和函数
④ 普通文件:可对该类文件进行 任意读写访
问。
⑤存档文件:标志文件是否被修改过,当新
建或修改文件时,系统会自动设置文件的存档属
性,它不影响文件的存取,只表明文件内容被更
新,它提供了一种快速检索文件的方法。
settattr语句的语法格式为:
settattr”文件名,,attributes
其中,attributes为必选参数,是常数或数
值表达式,其总和用来表示文件的属性。
9.1文件处理语句和函数
Attributes参数设置说明表
常数
vbhidden
vbsystem
vbarchive
vbreadonly
vbnormal
值
0
1
2
4
32
描述
常规(缺省值)
只读
隐藏
系统文件
上次备份以后,文件已经改变
9.1文件处理语句和函数
9.1.2 与文件系统相关的函数
1,返回当前路径 —— curdir
curdir函数赶会一个 variant( string),
用它来代表当前的路径。其语法格式如下:
curdir[( drive) ]
“drive”是可选参数,为一个字符串表达式。
它指定一个存在的驱动器。如果没有指定驱动器,
或, drive”是零长字符串(,” ),则 vurdir会
返回当前驱动器的路径。
2.返回文件的日期、时间 ——filedatetime
filedatetime返回一个 variant( date),此
为一个文件被创建或最后修改后的日期或时间。
9.1文件处理语句和函数
语法格式为:
filedatetime( pathname)
pathname为必选参数,是用来指定一个文件
名的字符串表达式。 Pathname可以包含目录或文
件以及驱动器。
3,返回文件、目录或文件夹属性 —— getattr
getattr函数返回一个整型值,此值为一个文
件、目录或文件夹的属性。语法格式为:
getattr( pathname)
4,返回文件长度 —— filelen
filelen函数返回一个长整型数值,代表一个
文件的长度,单位是字节。
9.1文件处理语句和函数
语法格式为:
filelen( pathname)
注意:当调用 filelen函数时,如果所指定的
文件已经打开,则返回的值是这个文件在打开前
的大小。
5.返回文件名或磁盘标签 —— dir
dir函数返回一个字符串类型,用以表示一个
文件名、目录或文件夹名,它必须与指定的模式
或文件属性、磁盘卷标相匹配。
在第一次调用函数时,必须给出路径名参数,
每次调用该函数时仅返回一个与参数相匹配的文
件名,以后再调用时可省略参数。
dir函数语法格式为:
dir[( pathname[,attributes])
9.1文件处理语句和函数
6,行文件函数 —— shell
shell函数用于执行一个可执行文件。如果程
序执行成功,则返回程序的任务句柄,若不成功,
则返回 0。任务句柄是一个唯一的数值,用来指明
正在运行的程序。语法格式为:
shell(pathname[,windowstyle])
其中,,pathname”与前面函数中参数的含义
相同。可选参数, windowstyle”表示在运行程序
后窗口的样式。如果省略 windowstyle,则程序是
以具有焦点的最小化窗口来执行的 。
9.1文件处理语句和函数
windowstyle参数说明表
vbhide 0 窗口被隐藏,且焦点会被移到隐式窗口
值常量 描 述
vbnormalfoc
us
vbminmized
fovus
vbmaximize
dfovus
vbnormalnof
ocus
Vbminimize
dnofovus
1
2
3
4
6
窗口具有焦点,且会还原到它原来的大小和位置
窗口会以一个具有焦点的图表来显示
窗口是一个具有焦点的最大化窗口
窗口会被还原到最近使用的大小和位置,当前活动的窗
口仍然保持活动
窗口会以一个图表来显示,当前活动的窗口仍然保持活
动
9.1文件处理语句和函数
顺序文件是一种适用于在连续块中读写的文
本文件。这种文件中的数据由文本字符组成。这
些字符既可以是 ASCII码字符集中的可显示字符,
也可以是汉字字符。
顺序文件按行组织,每一行的结尾由, 回车,
和, 换行, 字符指示。在顺序文件中,只知道第
一个记录的存放位置,其他的记录无从知晓。当
要查找某项数据时,只能从文件的开头,一个记
录一个记录的顺序查找,直到找到所需记录为止。
,回车, 字符的 ASCII码为 13,,换行, 字符的
ASCII码为 10。
当用户要处理只包含文本的文件时,比如由
文本编辑器创建的文件,最好使用顺序型访问。
9.2 顺序文件
一,打开顺序文件
Open,文件名, [For 模式 ] As [#]文件号 [Len=记录长
度 ]
其中:
(1) 模式
OUTPUT:写操作
INPUT:读操作
APPEND:追加到文件未尾
(2) 文件号
1~ 511,可以用 FreeFile函数获得下一个可利用的文件号。
(3) 记录长度
小于或等于 32767的整数,它指定数据缓冲区的大小。
例如:打开 C:\VB\SCORE,供写入数据,指定文件号为 #1。
OPEN "C:\VB\SCORE" FOR OUTPUT AS #1
9.2 顺序文件
二、读顺序文件
1,Input #语句
格式,Input #文件号,变量列表
功能:从已打开的顺序文件中读出数据,并将数据
指定给用逗号分界的变量列表中的变量。
2,Line Input #语句
格式,Line Input #文件号,字符串变量
功能:从已打开的顺序文件中读出一行并将它分配
给字符串变量。
3,Input()函数
格式,INPUT$(读取字符数,#文件号 )
功能:读取以 Input 或 Binary 方式打开的文件中
的指定数目的字符。
9.2 顺序文件
例题:读文本文件到文本框
假定文本框名称为 txtTest,文件名为 MYFILE.TXT。
常用的函数:
LOF(文件号 ):返回文件的长度 (总字节数 )。
EOF(文件号 ):返回读写位置。
文件未到结尾时,EOF函数为 True,否则为 False
解法:
方法 1:一行一行读
txtTest.Text = ""
Open "MYFILE.TXT" For Input As #1
Do While Not EOF(1)
Line Input #1,InputData
txtTest.Text = txtTest.Text + InputData+vbCrLf
Loop
Close #1
9.2 顺序文件
方法 2:一次性读
txtTest.Text = ""
Open "MYFILE.TXT" For Input As #1
txtTest.Text = Input( LOF(1),1)
Close #1
方法 3:一个个字符读
Dim InputData as String*1
txtTest.Text = ""
Open "MYFILE.TXT" For Input As #1
Do While Not EOF(1)
InputData= Input(1,#1)
txtTest.Text = txtTest.Text + InputData
Loop
Close #1
9.2 顺序文件
三、写顺序文件
要在顺序文件中写入变量的内容时,应以
Output或 Append方式打开它。
当以 Output模式打开文件时,写操作语句从
数据文件的最前面开始写入。如果文件已存在,
则文件中原来的内容会被覆盖;若文件不存在,
则会建立一个新文件,将数据从头开始写入。
当文件以 Append模式打开时,如果文件已经
存在,则在写入数据时不会将原来的数据覆盖,
而是从文件末尾开始,将新数据添加到文件中。
在将数据写入文件时,应根据是否要覆盖原
文件来选择不同的文件打开模式。
9.2 顺序文件
1.写入命令
格式,Print #文件号,[输出列表 ]
功能:将格式化显示的数据写入顺序文件中。
2,Write #语句
格式,Write #文件号,[输出列表 ]
功能:将数据写入顺序文件。
例如:命令,Write #1,"One","Two",123
内容,"One","Two",123
注意:
与 Print # 语句不同,当要将数据写入文件时,
Write # 语句采用紧凑格式,即数据项之间插入,,”,没
有必要在列表中键入明确的分界符。 Write # 语句在将
outputlist 中的最后一个字符写入文件后会插入一个新行
字符,即回车换行符。
9.2 顺序文件
例题:将文本框的内容写到文本文件中
假定文本框的名称为 txtTest,文件名为 TEST.DAT。
方法 1,把整个文本框的内容一次性地写入文件。
Open "TEST.DAT" For Output As #1
Print #1,txtTest.Text
Close #1
方法 2,把整个文本框的内容一个字符一个字符地写入文
件。
Open "TEST.DAT" For Output As #1
For i=1 To len(txtTest.Text)
Print #1,Mid(txtTest.Text,i,1);
Next i
Close #1
9.2 顺序文件
四、关闭顺序文件
格式,Close [[#]文件号 ][,[#]文件号 ]...
功能:语句用于关闭使用 Open 语句所打开的输入 /输
出文件。
例如,Close #1,#2,#3
注意:
若省略 Close关键字后的内容,则将关闭 Open 语句
打开的所有活动文件。
即使没有 Close语句,当程序结束时,也将自动关闭
所有打开的文件。但是 Close语句还是必要的,如果不使
用 Close语句,可能会使得某些需要写入的数据不能从内
存写入文件中。当打开的文件或设备正在输出时,执行
Close语句并不会使输出信息的操作中断。
9.2 顺序文件
例 9.1 顺序文件的使用示例
本程序演示顺序文件的读写操作,程序运行
示意如图 9.1所示。该程序可以打开一个顺序文件,
将其内容存入文本框中进行修改,并可以保存修
改。改成可以将文本框的内容在磁盘上建立一个
顺序文件。
9.2 顺序文件
9.2 顺序文件
设置控件事件代码如下:
? Private Sub Command1_Click()
?本过程完成文件的读取功能
? Dim File1
? Dim nextline As String
? CommonDialog1.Filter=
?Text Files(?.txt)|?.txt?
?指定默认文件类型
? CommonDialog1.ShowOpen
?调用以 CommonDialog1控件打开的对话框,以输入要
打开的文件名
? File1=CommonDialog1.filename
?将打开对话框提供的文件名赋予变量 File1
9.2 顺序文件
? Open File1 For Input As #1
?按读方式打开
?下面循环可以用语句, Text1.text=Input(LOF(1),1)”替代
? Do Until EOF(1)
?将打开文本文件的内容赋予文本框
? Line Input #1,nextline
? Text1.Text=Text1.Text+nextline+Chr(13)+Chr(10)
? Loop
? Close 1 ?关闭打开的文件
? End Sub
9.2 顺序文件
? Private Sub Command2_Click()
?本过程完成将文本框的内容写入文件中
? Dim contents,File1
? CommonDialog1.showSave ?调用 CommandDialog1控
件的保存对话框,以提供建立文件的文件名
? File1=CommonDialog1.filename
? Open File1 For Output As #1 ?以写方式打文件
? Contents=Text1.Text
? Text1.Text=? ? ?清除文本框中的内容
? Print #1,Contents ?往文件中写入内容
? Close 1
? End Sub
? Private Sub Command3_Click()
? Unload Me ?退出程序
? End Sub
9.2 顺序文件
9.3 随机文件
在文件中以顺序文件方式进行存取数据很方
便也很常用,但是当需要大量查找或修改文件中
的数据时会很困难,而这时采用随机文件方式存
取数据就显得比较方便。
随机文件的每一个数据项都有相同的长度,
它的数据项通常称做记录。随机文件是以记录为
单位的,每条记录都被赋予了记录号以便查找。
应用程序可以根据记录号直接读取随机文件中的
任意记录,而无须由前至后逐个读取记录。
对随机文件的存取是以记录为单位进行的,
每个记录包括一个或多个字段。具有一个字段的
记录对应于任一标准类型,比如整数或定长字符
串。具有多个字段的记录对应于用户自定义类型。
9.3.1 声明记录类型变量
在打开一个文件进行随机访问之前,应定义
一个类型,该类型对应于该文件包含或将包含的
记录。
语法格式为:
[Private|Public] Type 自定义类型名
元素名 As type
[元素名 As type]
…
End Type
9.3 随机文件
例如,声明一个学生自定义类型。
Type Student
Number As String ?2
?学号,宽度为 2字节
Name As String ?8
?姓名,宽度为 8字节
Score As Integer
?成绩,宽度为 2字节
End Type
9.3 随机文件
在定义与记录对应的类型以后,应接着声明
程序需要的任何其他变量,用来处理作为随机访
问而打开的文件。如:
Public student1,student2 As student
?定义记录变量
Public stnume As Integer
?定义存放当前记录号的变量
Public LastRecord As Long
?存放最后一条记录的编号
9.3 随机文件
例如:
? Dim Lastrecord As Long
?存放最后一个记录的编号
? Dim student1 As student
? Dim RecLength as Long
? RecLength=Len(student1)
? 计算每条记录的长度
? FileNum=FreeFile()
?取出下一个可用文件编号
? Open ?School,dat? For Random As FileNum
Len=RecLength ?用 Open语句打开新文件
? LastRecord=LOF(FileNum)/RecLength
?存放文件中记录的个数
9.3 随机文件
9.3.2 随机文件的操作
一、打开
格式:
Open "文件名 " For Random As #文件号 [Len=
记录长度 ]
二、读操作
1.格式:
Get [#]文件号,[记录号 ],变量名
2.功能:
将一个已打开的磁盘文件的一条记录的内容读入一个
变量之中。
忽略记录号,则读出当前记录后的那一条记录。
9.3 随机文件
下面的例子使用 Get语句来将数据从文件读到
变量中
? Dim Student1 As Student,Position As Long
? ?声明变量
? Open ?School.dat? For Random As #1
?为随机访问打开样本文件
? Len=Len(Student1)
?使用 Get语句来读样本文件
? Position=4 ?定义记录号
? Get #1,Position,Student1
?读第 4个记录到变量 Student1中
? Close #1 ?关闭文件
9.3 随机文件
三、写操作
1.格式,Put [#]文件号,[记录号 ],变量名
2.功能:将一个变量的数据写入磁盘文件中,将
一个记录变量的内容写到指定的记录位置处。
忽略记录号,则表示在当前记录后的位置插入一
条记录。
9.3 随机文件
1,替换记录
2,添加记录
【 例 9.2】 往随机文件中添加记录 。
3,删除记录
【 例 9.3】 将, Student97.dat”随机文件的
第 n条记录删除 。
4.随机文件的浏览操作
【 例 9.4】 用滚动条控件在随机文件中进行
定位操作 。
9.3 随机文件
二进制文件是一个字节流,文件系统并不解释各
字节的意义,解释工作由具体的应用程序完成。
以二进制方式访问文件有下述特点:
? 可以直接访问文件中的所有数据。
? 由应用程序根据需要解释数据的意义。
? 访问文件的语句不更改原始数据的所有内容。
二进制文件每一次读写是以字节为单位对数据进
行访问操作的,它允许用户读写或修改文件中的任何
字节信息。当把二进制数据写入文件中时,使用 Byte
数据类型的数组,而不是 String变量。 String被认为
包含的是字符,而二进制型数据可能无法正确地存储
在 String变量中。
当要保持文件的尺寸尽量小时,应使用二进制文
件。
9.4 二进制文件
一、二进制文件的打开
Open "文件名 " For Binary As #文件号
二、二进制文件的写操作
Put [#]文件号,[位置 ],变量名
写入长度等于变量长度的数据。
三、二进制文件的读操作
GET [#]文件号,[位置 ],变量名
从指定位置开始读出长度等于变量长度的数据
存入变量中,数据读出后移动变量长度位置,如果
忽略位置,则表示从文件指针所指的位置开始读出
数据,数据读出后移动变量长度位置。
9.4 二进制文件
例题 文件复制
Dim char As Byte
Dim FileNum1,FileNum2 as Integer
FileNum1 = FreeFile
Open "C:\STUDENT.DAT" For Binary As # FileNum1
'打开源文件
FileNum2 = FreeFile
Open "C:\STUDENT.BAK" For Binary As # FileNum2
?打开目标文件
Do While Not EOF(FileNum1)
Get #1,,char '从源文件读出一个字节
Put #2,,char '将一个字节写入目标文件
Loop
Close #FileNum1
Close #FileNum2
9.4 二进制文件
9.5 与文件系统相关的控件
文件系统控件有三种:驱动器列表框
( DriveListBox)、目录列表框( DirListBox) 和
文件列表框( FileListBox)。
9.5.1 驱动器列表框、目录列表框、文件列表框控件
这 3个控件一般同时出现在一个界面上,用以
与用户交互管理文件系统,但 3者在界面设计阶段
仅显示当前驱动器下的目录结构及当前目录下的
文件结构,且 3者之间无任何联系,所以在程序设
计时必须通过代码将 3者有机地联系起来。
这 3种特殊文件系统能够自动地从操作系统获
取一切信息,且操作比 CommonDiaLog控件更灵活,
功能更强大。如果只需一般的对话框,则使用
CommonDiaLog控件就可以了。
9.5 与文件系统相关的控件
1,驱动器列表框
Drive属性:
[对象,]Drive [= drive]
Change事件:
重新设置 Drive属性引发 Change事件
驱动器列表框和目录列表框的同步:
dir1.Path = Drive.Drive
9.5 与文件系统相关的控件
2,目录列表框
Path属性,
[对象,]Path [= pathname]
Change事件:
重新设置 Path 属性引发 Change事件
9.5 与文件系统相关的控件
3,文件列表框
(1) 属性
Path属性:
显示该列表框下文件的路径。
重新设置 Path属性引发 PathChange事件。
Pattern属性:
显示的文件类型。
[对象,]Pattern [= value]
重新设置 Pattern属性引发 PatternChange事件。
例如,filFile.Pattern =,*.frm”,显示 *.frm文
件。
9.5 与文件系统相关的控件
FileName属性:
[对象,]FileName [= pathname]
引用时只返回文件名,相当于
filFile.List(filFile,ListIndex),需用 Path属
性得到其路径;设置时可带路径。
Multiselect属性:
是否允许用户选择多个文件。
9.5 与文件系统相关的控件
( 2)事件
PathChange事件:
重新设置 Path属性引发 PathChange事件。
PatternChange事件:
重新设置 Pattern属性引发 PatternChange事
件。
例如,filFile.Pattern =,*.frm”,显示
*.frm文件。
9.5 与文件系统相关的控件
Click事件:
例如,单击输出文件名。
Sub filFile_Click( )
MsgBox filFile.FileName
End Sub
9.5 与文件系统相关的控件
DblClick事件:
例如,双击执行可执行程序
Sub filFile_DblClick( )
ChDir (dirDirectory.Path)
? 改变当前目录
RetVal = Shell(filFile.FileName,1)
? 执行程序
End Sub
9.5 与文件系统相关的控件
( 3)目录列表框和文件列表框的同步:
File1.Path= Dir1.Path
9.5 与文件系统相关的控件
【 例 9.5】 文件系统控件的演示。
Sub drvDrive_Change()
dirDirectory.Path = drvDrive.Drive
End Sub
Sub dirDirectory_Change()
filFile.Path = dirDirectory.Path
End Sub
Sub Form_Load()
Item =,所有文件 (*.*)”
cboType.AddItem Item + Space(20 - Len(Item)) + "*.*"
Item = "窗体文件 (*.FRM)"
cboType.AddItem Item + Space(20 - Len(Item)) + "*.FRM"
Item = "位图文件 (*.BMP)"
cboType.AddItem Item + Space(20 - Len(Item)) + "*.BMP"
cboType.ListIndex = 2
End Sub
Sub cboType_Click()
filFile.Pattern = Mid(cboType.Text,21)
End Sub
Sub filFile_Click( )
┆
End Sub
Sub filFile_DblClick( )
┆
End Sub
9.5 与文件系统相关的控件
9.5.2 通用对话框控件( CommonDialog)
通用型对话框共有 6种,它们是,Open(打
开),Save As(保存文件),Print(打印)、
Color(颜色),Font(字体),Help(帮助)。
通过设置通用对话框控件的属性和使用它的
不同方法,需要打开文件时,该控件能够显示
,打开, 对话框;需要保存文件时,该控件能够
显示, 另存为, 对话框。除此之外,通用对话框
还能够显示, 颜色, 对话框,,字体, 对话框和
,打印, 对话框。
9.5 与文件系统相关的控件
一、创建通用对话框控件
通用对话框控件不是 VB6.0的内置控件,
而是一个 ActiveX控件。使用前,应该将它
们添加到工具箱中。
在 VB的工具箱中加入通用对话框控件
的具体方法是:
( 1)选择, 工程, 菜单项中的, 部件,
选项(或直接按 Ctrl+T键),或在工具箱
中单击鼠标右键,在弹出的快捷式菜单中
选择, 部件, 选项,则调出, 部件, 对话
框。
9.5 与文件系统相关的控件
( 2)该对话框中列出所有可以使用的
部件,包括, 控件,,, 设计器, 和, 可
插入对象, 。在, 控件, 选项卡中列出了
可以添加的 ActiveX控件,选择所需
ActiveX控件(此处选择, Microsoft
Common Dialog Control 6.0”列表项),单
击该控件名称左边的复选框,选中该控件。
( 3)单击, 确定, 命令按钮,关闭
,部件, 对话框,被选中的通用对话框控
件被添加到当前工程的工具箱中,图标为,
缺省名为 CommonDialogX( X为 1,2,… )。
9.5 与文件系统相关的控件
二、设置通用对话框控件的属性
在调用通用对话框的方法之前,应该
根据需要设置该控件的属性。与其它控件
相似,设置通用对话框属性的方法也有两
种:在属性窗口中设置;使用代码设置。
在属性窗口中设置通用对话框属性的
方法为:
(1) 右击窗体上的通用对话框控件,单
击弹出菜单中的“属性”菜单项,系统显
示如图所示的“属性页”对话框。
9.5 与文件系统相关的控件
(2) 当需要使用“打开”对话框或“另
存为”对话框时,在“打开 /另存为”选项
卡中设置通用对话框的属性;当需要使用
“颜色”对话框时,在“颜色”选项卡中
设置通用对话框的属性;当需要使用“字
体”对话框时,在“字体”选项卡中设置
通用对话框的属性;当需要使用“打印”
对话框时,在“打印”选项卡中设置通用
对话框的属性;当需要使用“帮助”对话
框时,在“帮助”选项卡中设置通用对话
框的属性。
9.5 与文件系统相关的控件
9.5 与文件系统相关的控件
三、调用通用对话框控件
调用这些通用对话框的方法如下:
调用打开对话框,CommonDialogX.ShowOpen
调用保存对话框,CommonDialogX.ShowSave
调用打印对话框,CommonDialogX.ShowPrinter
调用颜色对话框,CommonDialogX.ShowColor
调用字体对话框,CommonDialogX.ShowFont
调用帮助对话框,CommonDialogX.ShowHelp
9.5 与文件系统相关的控件