10.3.1 文件读写操作语句和函数
文件的操作主要是读和写,在文件的读/写过程中需要使用许多语句和函数,本节介绍常用的文件打开与操作语句和函数。
(1)FreeFile函数
使用FreeFile函数可得到一个在程序中没有使用的文件号,该函数返回一个整型数据。这个函数在程序中打开多个文件时非常有用,可以避免出现相同的文件号。
语法格式如下。
其中,参数rangenumber是可选参数,用来决定返回的文件号的取值范围。当参数值为0时,返回一个介于1~255的文件号;为1时,返回一个介于256~511的文件号。默认值为0。
例如:
(2)Loc函数
Loc函数返回由“文件号”指定的文件的当前读/写位置,是一个长整型值。
语法格式如下。
Loc函数对于随机文件,返回上一次读取或写入的记录号;对于二进制文件,返回上一次读取或写入的字节位置;对于顺序文件,返回该文件打开以后读或写的记录个数,一个记录是一个数据块。
例如:
(3)LOF函数
LOF函数返回一个长整型值,表示用Open语句打开文件的大小,以字节为单位。
语法格式如下。
例如:
(4)Lock和Unlock语句
在多用户或多进程环境中,可以用Lock和Unlock语句限制其他用户或进程对打开的全部文件或部分文件的访问。在使用Lock和Unlock语句时,这两条语句总是成对出现。
语法格式如下。
对于不同类型的文件,“记录”“开始”“结束”的含义也不同。对于二进制文件,它们代表从文件开头计算的字节号,文件的第一个字节的字节号是1;对于随机文件,它们代表从文件开头计算的记录号,文件的第一个记录的记录号是1。
例如:
(5)FileAttr函数
FileAttr函数返回一个长整型值,表示使用Open语句打开文件的方式。
语法格式如下。
其中,“返回值类型”是可选参数,只能取两个值:1(默认值)和2。当参数值为1(或省略)时,返回打开文件的方式,返回值见表10-1。当参数值为2时,返回打开文件的句柄。
表10-1 打开方式返回值
例如:
(6)EOF函数
EOF函数用于测试文件的结束标志,可以避免因试图在文件结尾处进行输入而产生的错误。
语法格式如下。
对于用Input方式打开的顺序文件,如果已经读到文件尾,则返回True,否则返回False。
对于以Output、Append打开的顺序文件,EOF函数总是返回True。
对于随机文件,如果最后执行的Get语句未能读出完整的记录,则EOF函数返回True,否则返回False。
EOF函数通常用来在循环读数据时测试是否已到文件尾,例如:
(7)Seek函数
Seek函数返回一个长整型值,在Open语句打开的文件中指定当前的读/写位置。
语法格式如下。
文件号为必选,是一个有效文件号。
(8)Seek语句
在Open语句打开的文件中,Seek语句用于设置下一个读/写操作的位置。
语法格式如下。
说明:对于用Binary、Input、Output或Append方式打开的文件,“位置”是从文件开头到“位置”为止的字节数,即执行下一个操作的地址。对于用Random方式打开的文件,“位置”是记录号。
Get和Put语句中的记录号优先于由Seek语句确定的位置。当“位置”为零或负数时,将产生出错信息“错误的记录号”。当Seek语句的“位置”在文件尾之后时,对文件的写操作将扩展该文件。