Поделиться через


Оператор Seek

Задает позицию для следующей операции чтения и записи в файле, открытом с помощью инструкции Open .

Синтаксис

Поиск [ # ] filenumber, position

Синтаксис оператора Seek состоит из следующих частей:

Part Описание
filenumber Обязательно указывать. Любой допустимый номер файла.
position Обязательно. Число из диапазона от 1 до 2 147 483 647 включительно, которое указывает, где должна произойти следующая операция чтения/записи.

Замечания

Число записей, указанных в инструкциях Get и Put , переопределяет расположение файлов, выполняемых методом 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 и обратная связь.