Примечание: Функция, метод, объект или свойство, описанные в данном разделе, отключаются, если служба обработки выражений Microsoft Jet выполняется в режиме песочницы, который не позволяет рассчитывать потенциально небезопасные выражения. Для получения дополнительных сведений выполните в справке поиск по словам "режим песочницы".
Возвращает значение Long, указывающее текущую позицию чтения и записи в файле, открытом с помощью инструкции Open .
Синтаксис
Seek( filenumber )
Обязательныйаргументfilenumber — это целое число, содержащее допустимый номер файла.
Замечания
Функция Поиска возвращает значение от 1 до 2 147 483 647 (эквивалентно 2^31 –1) включительно.
Ниже описаны возвращаемые значения для каждого режима доступа к файлам.
Режим |
Возвращаемое значение |
Произвольный |
Номер следующей записи, прочитанного или записанного |
Binary, Output, Append, Input |
Позиция байтов, в которой выполняется следующая операция. Первый байт в файле находится в позиции 1, второй байт — в позиции 2 и т. д. |
Пример
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере функция 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. ' Print record number to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.
Для файлов, открытых в режимах, отличных от случайного, функция 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. ' Print byte position to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.