7.2 文件的读写
1. 文件的有关概念
记录:计算机处理数据的基本单位,由若干个相互关联的数据项组成。相当于表格中的一行。
文件:记录的集合,相当于一张表。
文件类型:顺序文件、随机文件、二进制文件。
访问模式:计算机访问文件的方式,VB中有顺序、随机、二进制三种访问模式。
2. 顺序访问模式
顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以跳跃式访问。该模式专门用于处理文本文件,每一行文本相当于一条记录,每条记录可长可短,记录与记录之间用“换行符”弊核来分隔。
顺序文件的写入步骤:打开、写入、关闭;拍老 读出步骤:打开、读出、关闭。
(1)打开文件
打开文件的命令是Open,格式为:
Open “文件租贺掘名” For 模式 As [#] 文件号 [Len=记录长度]
说明:
1)文件名可以是字符串常量也可以是字符串变量
2)模式可以是下面之一:
OutPut:打开一个文件,将对该文件进行写操作
Input:打开一个文件,将对该文件进行读操作
Append:打开一个文件,将在该文件末尾追加记录
3) 文件号是一个介于1-511之间的整数,打开一个文件时需要指定一个文件号,这个文件号就代表该文件,直到文件关闭后这个号才可以被其他文件所使用。可以利用FreeFile()函数获得下一个可以利用的文件号。
例: Open "D:\sj\aaa" For Output As #1
意思是:打开D:\SJ下aaa文件供写入数据,文件号为#1
(2)写操作
将数据写入磁盘文件所用的命令是:Write# 或Print#。语法格式:
1) Print #文件号,[输出列表]
例: Open “D:\SJ\TEST.DAT” For Output As #1
Print #1,Text1.Text '把文本框的内容一次性写入文件
Close #1
2)Write #文件号,[输出列表]
其中的输出列表一般指用逗号,分隔的数值或字符串表达式。Write #与Print #的功能基本相同,区别是Write #是以紧凑格式存放,在数据间插入逗号,并给字符串加上双引号。
(3) 关闭文件
结束各种读写操作后,必须将文件关闭,否则会造成数据丢失。关闭文件的命令是Close。
Close [#]文件号[,[#]文件号]……
例: Close #1,#2,#3
(4) 读操作
1) Input #文件号,变量列表
作用:将从文件中读出的数据分别赋给指定的变量。
注意:与Write #配套才可以准确地读出。
2)Line Input #文件号,字符串变量
用于从文件中读出一行数据,并将读出的数据赋给指定的字符串变量,读出的数据中不包含回车符和换行符,可与Print #配套用。
3)Input$(读取的字符数,#文件号)
该函数可以读取指定数目的字符。
与读文件有关的两个函数:
LOF():返回某文件的字节数
EOF():检查指针是否到达文件尾。
例:将一个文本文件读入文本框的三种方法。
3.随机访问模式
该模式要求文件中的每条记录的长度都是相同的,记录与记录之间不需要特殊的分隔符号。只要给出记录号,可以直接访问某一特定记录,其优点是存取速度快,更新容易。
(1) 打开与关闭
打开:Open “文件名” For Random As [#] 文件号 [Len=记录长度]
关闭:Close #文件号
注意:文件以随机方式打开后,可以同时进行写入和读出操作,但需要指明记录的长度,系统默认长度为128个字节。
(2)读与写
读操作:Get [#]文件号,[记录号],变量名
说明:Get命令是从磁盘文件中将一条由记录号指定的记录内容读入记录变量中;记录号是大于1的整数,表示对第几条记录进行操作,如果忽略不写,则表示当前记录的下一条记录。
写操作:Put [#]文件号,[记录号],变量名
说明:Put命令是将一个记录变量的内容,写入所打开的磁盘文件指定的记录位置;记录号是大于1的整数,表示写入的是第几条记录,如果忽略不写,则表示在当前记录后插入一条记录。
4. 二进制访问模式
打开:Open “文件名” For Binary As [#] 文件号 [Len=记录长度]
关闭:Close #文件号
该模式是最原始的文件类型,直接把二进制码存放在文件中,没有什么格式,以字节数来定位数据,允许程序按所需的任何方式组织和访问数据,也允许对文件中各字节数据进行存取和访问。
该模式与随机模式类似,其读写语句也是Get 和Put,区别是二进制模式的访问单位是字节,随机模式的访问单位是记录。在此模式中,可以把文件指针移到文件的任何地方,刚开始打开时,文件指针指向第一个字节,以后随文件处理命令的执行而一旦。文件一旦打开,就可以同时进行读写。
7.3 常用的文件操作语句和函数
1. FileCopy语句
格式:FileCopy 源文件名 目标文件名
功能:复制一个文件
说明:不能复制一个已打开的文件
2. Kill语句
格式:Kill 文件名
功能:删除文件
说明:文件名中可以使用通配符 *,?
3. Name语句
格式:Name 旧文件名 新文件名
功能:重新命名一个文件或目录
说明:不能使用通配符;具有移动文件功能;不能对已打开的文件进行重命名操作
4. ChDrive语句
格式:ChDrive 驱动器
功能: 改变当前驱动器
说明:如果驱动器为空,则不变;如果驱动器中有多个字符,则只会使用首字母
5.MkDir语句
格式:MkDir 文件夹名
功能:创建一个新的目录
6.ChDir语句
格式:ChDir 文件夹名
功能:改变当前目录
说明:改变默认目录,但不改变默认驱动器。
7. RmDir语句
格式:RmDir 文件夹名
功能:删除一个存在的目录
说明:不能删除一个含有文件的目录
8. CurDir()函数
格式: CurDir[(驱动器)]
功能:可以确定任何一个驱动器的当前目录。
说明:括号中的驱动器表示需要确定当前目录的驱动器,如果为空,返回当前驱动器的当前目录路径。
可以这样简单理解:主要是配合程序的输入与输出,比方数敬孝据处理时需要输入数据亮樱稿文件,计算后再颂携写文件,作为输出。