Seek 语句

使用 Open 语句在打开的文件中设置下一个读/写操作的位置。

语法

Seek [ # ] filenumberposition

Seek 语句的语法包含以下部分:

Part 说明
filenumber 必填。 任何有效的文件编号
position 必填。 范围 1 – 2,147,483,647(含这两个值)中的数字,指示下一次读取/写入操作应发生的位置。

备注

GetPut 语句中指定的记录编号将覆盖 Seek 执行的文件定位。

Seek 操作之后在文件结尾之外执行文件写入操作可扩充文件。 如果尝试向负或零位置执行 Seek 操作,将发生错误。

示例

此示例使用 Seek 语句为文件中的下一次读取或写入设置位置。 此示例假定 是 TESTFILE 包含用户定义类型 Record的记录的文件。

Type Record ' Define user-defined type. 
 ID As Integer 
 Name As String * 20 
End Type 

对于在随机模式下打开的文件, Seek 将设置下一条记录。

Dim MyRecord As Record, MaxSize, RecordNumber ' Declare variables. 
' Open file in random-file mode. 
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) 
MaxSize = LOF(1) \ Len(MyRecord) ' Get number of records in file. 
' The loop reads all records starting from the last. 
For RecordNumber = MaxSize To 1 Step - 1 
 Seek #1, RecordNumber ' Set position. 
 Get #1, , MyRecord ' Read record. 
Next RecordNumber 
Close #1 ' Close file. 

对于在随机模式之外的模式中打开的文件, Seek 可设置下一操作发生的字节位置。 此示例假定 是 TESTFILE 一个包含几行文本的文件。

Dim MaxSize, NextChar, MyChar 
Open "TESTFILE" For Input As #1 ' Open file for input. 
MaxSize = LOF(1) ' Get size of file in bytes. 
' The loop reads all characters starting from the last. 
For NextChar = MaxSize To 1 Step -1 
 Seek #1, NextChar ' Set position. 
 MyChar = Input(1, #1) ' Read character. 
Next NextChar 
Close #1 ' Close file. 

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。