第十章 文件
有关文件系统控件的应用
文件结构、文件的访问
本章主要内容
10.1 文件系统控件
? VB中提供了三个文件系统控件
– 驱动器列表框:一个下拉式列表框,用于显示和选择驱动
用。
?主要属性,[<对象 >.]Driver=<驱动器名 >
?主要事件,Change
– 目录列表框:显示和选择当前驱动器的目录结构和所有子
目录。
?主要属性,[<对象 >.]Path=<路径 >
?主要事件,Change
– 文件列表框:显示和选择当前目录下所有文件。
?主要属性,Path,FileName,Pattern
参见例 10-1
10.2 文件及其结构
? 文件:指存储在计算机外部介质上一组相关信息的集合,计
算机的操作系统是以文件为单位对数据进行管理的。
? 文件的基本操作:读(从文件中读取信息)、写(将信息写
入文件中)。
? 关于文件的几个概念,
– 字符:数据文件中的最小单位,如单个的字节、数字、字
符等。
– 字段:一般由若干个字符组成的一项独立的数据,如学生
的学号、姓名、年龄等均为字段。
– 记录:由若干个相关字段组成的一个逻辑单位,如学生的
学号、姓名、年龄等多个字段组成一个记录。
– 文件:是由一个以上、结构相同的相关记录的集合,如一
个班的所有学生记录组成一个文件。
文件分类
?顺序文件:文件中的记录一个接一个存放,
记录长短可不同,访问时只能从第一条记
录访问到最后一条记录(即:只能顺序访
问)。
?随机文件:每条记录的长度相同,可以按
记录号直接访问文件中的任一记录。(即:
可以随机访问)
?二进制文件:直接将二进制代码存入文件,
可以按字节随机访问文件中的数据。
10.3 文件操作方法
?顺序文件的访问 步骤
–打开文件
–读 /写文件
–关闭文件
– 打开文件
Open, 文件名” For 模式 As [#]文件号
?其中模式有三种
– OutPut:新建或打开一个文件,进行写操作。
文件若存在,则打开,写入信息覆盖原有信息;
文件若不存在,则新建。
– Input:打开一个文件,进行写操作。文件必须
存在,否则出错。
– Append:新建或打开一个文件,进行写操作。
文件若存在,则打开,写入信息追加在原有信
息之后;文件若不存在,则新建。
?文件号:是给打开的文件分配一个文件号 [大小界
于 1至 511],此文件号就代表此文件,直到此文件
被关闭,此文件号才能被其他文件使用。
? 读 /写文件
– 写操作
?Print # 文件号,[输出列表 ]
?Write # 文件号,[输出列表 ]
– 读操作
?Input # 文件号,变量列表 ’读出数据赋给变量。
?Line Input # 文件号,字符变量 ’读出一行赋给变量
?Input$ ( 读取的字符数,文件号) ’读出指定数目的字符
– 读文件(包括随机文件和二进制文件)的两个重要函数,
?LOF( #文件号):返回指定文件的字符数(文件长度)
?EOF( #文件号):文件指针是否到达文件尾。
? 关闭文件
Close [[#]文件号 1] [,[#]文件号 2]……
例 10-2 顺序文件的写
Private Sub Form_Click()
Open "test.txt" For Output As #1
Print #1,"123",123
Print #1,"123"; 123
Write #1,"123",123
Close #1
End Sub
例 10-3 顺序文件的读
Private Sub Form_Click()
Dim st As String
Open "test.txt" For Input As #1
Do While (Not EOF(1))
Line Input #1,st
Print st
Loop
Close #1
End Sub
? 随机文件的访问步骤
– 打开文件,
Open, 文件名” For Random As [#]文件号 [Len=
记录长度 ]
?记录的缺省长度为 128字节。
– 关闭文件,同顺序文件
– 读 /写操作,
?写,Put [#]文件号,[记录号 ],变量名
缺省记录号时,表示写入的位置是在当前记录
之后。
?读,Gut [#]文件号,[记录号 ],变量名
缺省记录号时,表示读当前记录的后一条记录。
例 10-4 读 /写随机文件
?二进制文件的访问 步骤
–打开文件,
Open,文件名, For Random As [#]文件号
–关闭文件, 同前
–读 /写操作, 同前,只是读写是以字节为单位进
行。
例 10-5 读 /写二进制文件
10.4 常用文件操作语句与函数
– Kill, 删除指定文件
命令格式,Kill 文件名
– FileCopy, 复制一个文件
命令格式,FileCopy 源文件 目标文件
– Name, 重命名文件或子文件夹
命令格式,Name 源文件名 新文件名
– ChDrive, 改变当前驱动器
命令格式,ChDrive 驱动器名
– MkDir, 创建一个新文件夹
命令格式,MkDir 新文件夹名
– RmDir, 删除指定的空目录
命令格式,RmDir 目录名
– CurDir, 返回指定驱动器的当前目录
命令格式,CurDir [<Drive>]
综合举例
? 例 10-6 按指定格式将数据写入文件
? 例 10-7 按指定格式将三角函数值写入文件
? 例 10-8 两个文件间操作(从一个文件中读数据,
经处理后再写入另一文件)