Функция 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 и обратная связь.