随机文件是很多“块”数据。你可以去读第几“块”数据,可以不用读取前面的数据。也可以读读后面的再读前面的。你可以去找找随机文件的实例代码去看看,就明白了。
Open 文件名 [For模式][Access 存取类型][锁定]As [#]文件号[Len=记录长度]说明:
(1)文件名;
(2) 模式用于指定文件访问的方式,包括:
Append——从文件末尾添加 Binary——二进制文件
Input——顺序输入(输入给自己,从txt中取出)Output——顺序输出(输出到txt中)
Random——随机存取方式
(3)文件号(或称文件缓冲区)
(4)存取类型:访问文件的类型,为Read(只读)、Write(只写)、Read Write(读写)
(5)锁定:限制其他用户或其他进程对文件进行读写 *** 作
Shared(共享)、LockRead(禁止读)、Lock Write(禁止写)、
Lock Read Write(禁止读写)
(6)Len:用来指定每个记录的长度(字节数)
示例:Open"d:\cj1.dat" For Output As #1
使用顺序文件访问推荐您使用 File System Objects 来创建文本文件,但该信息只在需要使用旧文本文件创建方法时才提供。
当要处理只包含文本的文件时,比如由典型文本编辑器所创 建的文件-也就是说,其中的数据没有分成记录的文件,使用顺序型访问最好。顺序型访问不太适于存储很多数字,因为每个数字都要按字符串存储。一个四位数将需要 4 个字节的存储空间,而不是作为一个整数来存储时只需的 2 个字节。
打开顺序访问文件
当以顺序型访问打开一个文件时,可执行以下 *** 作:
从文件输入字符 (Input)
向文件输出字符 (Output)
把字符加到文件 (Append)
要顺序型访问打开一个文件,Open 语句使用以下语法:
Open pathname For [Input | Output | Append] As filenumber [Len = buffersize]
当打开顺序文件作为 Input 时,该文件必须已经存在,否则,会产生一个错误。然而,当打开一个不存在的文件作为 Output 或 Append 时,Open 语句首先创建该文件,然后再打开它。
当在文件与程序之间拷贝数据时,选项 Len 参数指定缓冲区的字符数。
在打开一个文件 Input、Output 或 Append 以后,在为其它类型的 *** 作重新打开它之前必须先使用 Close 语句关闭它。
编辑为顺序访问打开的文件
如果要编辑一个文件,先把它的内容读入到程序变量,然后改变这些变量,最后再把这些变量写回到该文件。以下各节讨论如何编辑以顺序型访问打开的各记录。
从文件中读取字符串
要检索文本文件的内容,应以顺序 Input 方式打开该文件。然后使用 Line Input#,Input( ),或者 Input# 语句将文件拷贝到程序变量中。
Visual Basic 提供了一次读写顺序文件一个字符或一行的语句和功能。
例如,以下代码段逐行读取一个文件:
Dim LinesFromFile, NextLine As String
Do Until EOF(FileNum)
Line Input #FileNum, NextLine
LinesFromFile = LinesFromFile + NextLine + Chr(13) + Chr(10)
Loop
尽管 Line Input # 到达回车换行时它会识别行尾,但是,当它把该行读入变量时,不包括回车换行。如果要保留该回车换行,代码必须添加。
也可以使用 Input # 语句,它读取文件中所写的一列的数字和/或字符串表达式。例如,要从一个邮件列表文件中读取一行,可使用以下语句:
Input #FileNum, name, street, city, state, zip
可以使用 Input 函数来从文件向变量拷贝任意数量的字符,所给的变量大小应足够大。例如,以下的代码使用 Input 把指定数目的字符复制到变量。
LinesFromFile = Input(n, FileNum)
要将整个文件复制到变量,请使用 InputB 函数将字节从文件复制到变量。因为InputB 函数返回一个 ANSI 字符串,您必须使用 StrConv 函数将 ANSI 字符串转换为一个如下的 UNICODE 字符串:
LinesFromFile = StrConv(InputB(LOF(FileNum), FileNum), vbUnicode)
把字符串写入文件
要在顺序文件中存储变量的内容,应以顺序 Output 或 Append 打开它,然后使用 Print # 语句。例如,文本编辑器可以使用以下代码行来把一个文本框的内容拷贝到文件。
Print #FileNum, TheBox.Text
Visual Basic 也支持 Write # 语句,它把一列数字和/或字符串表达式写入文件。它自动地用逗号分开每个表达式,并且在字符串表达式端放置引号。
Dim AnyString As String, AnyNumber As Integer
AnyString = "AnyCharacters"
AnyNumber = 23445
Write #FileNum AnyString, AnyNumber
这个代码段把两个表达式写入由 FileNum 指定的文件。第一个表达式包含一个字符串而第二个包含数字 23445。因而,Visual Basic 把以下的字符(包括所有标点符号)写入到文件中:
"AnyCharacters",23445
注意 如果正在用顺序型访问的 Write # 与 Input # 语句,可考虑换用随机型 或二进制型访问,因为它们更适合面向于记录的数据。
详细信息 有关顺序文件访问的其它信息,请参阅“Open 语句”。
这样可以么?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)