Задает положение указателя для следующей операции чтения/записи внутри файла, открытого с помощью инструкции Open.
Seek [#]номерФайла, позиция
Параметры
номерФайла
Обязательный. Любой допустимый номер файла.
позиция
Обязательный. Число в диапазоне 1 – 2,147,483,647 указывающее позицию, начиная с которой будет выполнена следующая операция чтения или записи.
Замечания
При выполнении инструкций Get и Put, содержащих конкретные номера записей, позиция указателя, установленная с помощью инструкции Seek, игнорируется.
Выполнение операции записи в файл после установки указателя с помощью инструкции Seek за конец файла приводит к увеличению размера файла. Установка указателя с помощью инструкции Seek в отрицательное или нулевое положение приведет к возникновению ошибки.
Пример
В данном примере инструкция Seek используется для изменения положения указателя внутри файла для следующей операции ввода/вывода. Предположим, что файл TESTFILE содержит несколько записей определенного пользователем типа Record.
Type Record ' Тип, определенный пользователем. ID As Integer Name As String * 20 End TypeДля файлов, открытых в режиме Random, Seek указывает следующую запись.
Dim MyRecord As Record, MaxSize, RecordNumber ' Объявляет переменные. ' Открывает файл произвольного доступа. Open "TESTFILE" For Random As #1 Len = Len(MyRecord) MaxSize = LOF(1) \ Len(MyRecord) ' Определяет число записей в файле. ' Последовательно читает все записи, начиная с последней. For RecordNumber = MaxSize To 1 Step - 1 Seek #1, RecordNumber ' Указывает номер записи. Get #1, , MyRecord ' Читает запись. Next RecordNumber Close #1 ' Закрывает файл.Для файлов, открытых в других режимах, Seek указывает номер байта, с которого будет начато выполнение следующей операции. Предположим, что файл TESTFILE содержит несколько строк текста.
Dim MaxSize, NextChar, MyChar Open "TESTFILE" For Input As #1 ' Открывает файл для чтения. MaxSize = LOF(1) ' Определяет размер файла в байтах. ' Последовательно читает все записи, начиная с последней. For NextChar = MaxSize To 1 Step -1 Seek #1, NextChar ' Указывает номер байта. MyChar = Input(1, #1) ' Читает символ. Next NextChar Close #1 ' Закрывает файл.