Функция Seek

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

Синтаксис

Seek(filenumber)

Обязательный аргументfilenumber — это целое число, содержащее допустимый номер файла.

Замечания

Функция Поиска возвращает значение от 1 до 2 147 483 647 (эквивалентно 2^31 –1) включительно.

В следующем примере описаны возвращаемые значения для режима доступа каждого файла.

Режим Возвращаемое значение
Случайных Номер следующей записи, прочитанного или записанного.
Binary, Output, Append, Input Позиция байта, на которой выполняется следующая операция. Первый байт в файле находится на позиции 1, второй — на позиции 2 и т. д.

Пример

В этом примере используется функция Seek для возврата текущей позиции файла. В примере предполагается, что TESTFILE это файл, содержащий записи определяемого пользователем типа Record.

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

Для файлов, открытых в случайном режиме, функция Seek возвращает номер следующей записи.

Dim MyRecord As Record    ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
Do While Not EOF(1)    ' Loop until end of file.
    Get #1, , MyRecord    ' Read next record.
    Debug.Print Seek(1)    ' Print record number to the Immediate window.
Loop
Close #1    ' Close file.

Для файлов, открытых в других режимах (не Random), Seek возвращает позицию байта, на которой выполняется операция. Предположим, что TESTFILE это файл, содержащий несколько строк текста.

Dim MyChar
Open "TESTFILE" For Input As #1    ' Open file for reading.
Do While Not EOF(1)    ' Loop until end of file.
    MyChar = Input(1, #1)    ' Read next character of data.
    Debug.Print Seek(1)    ' Print byte position to the Immediate window.
Loop
Close #1    ' Close file.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.