Для файлов, открытых в режиме Binary, применимы все перечисленные выше правила, за исключением следующих:
· Предложение Len инструкции Open игнорируется. Инструкция Get считывает все переменные с диска непрерывно, т.е. без заполнения пространства между записями текущим содержимым буфера файла.
· При чтении любых массивов, кроме являющихся элементами типов, определяемых пользователем, инструкция Get считывает только данные. Дескриптор не считывается.
· При считывании строк переменной длины, не являющихся элементами типов, определяемых пользователем,
VarString = String(10," «)
Get #1,,VarString
В данном примере инструкция Get используется для чтения данных из файла в переменную. Предполагается, что файл TESTFILE содержит пять записей определенного пользователем типа Record.
Type Record ’ Тип, определенный пользователем.
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record, Position ’ Объявляет переменную.
’ Открывает файл произвольного доступа.
Open «TESTFILE» For Random As #1 Len = Len(MyRecord)
’ Читает из файла с помощью инструкции Get.
Position = 3 ′ Определяет номер записи.
Get #1, Position, MyRecord ’ Читает третью запись.
Close #1 ′ Закрывает файл.
Инструкция Put.
Записывает содержимое переменной в файл на диске.
Синтаксис:
Put [#]номерФайла, [номерЗаписи], имяПеременной
Элемент Описание
номерФайла Обязательный. Любой допустимый номер файла.
НомерЗаписи Необязательный. Номер записи (режим Random) или номер байта (режим Binary), с которого следует начать запись.
ИмяПеременной Обязательный. Имя переменной, содержащей данные, которые следует записать в файл.
Данные, записанные с помощью инструкции Put, обычно считываются из файла с помощью инструкции Get. Первой записи (или байту) файла соответствует номер 1, второй 2 и т.п. Если аргумент номерЗаписи опущен, записывается запись (или байт), на которую указатель был установлен после выполнения последней инструкции Get или Put переведен с помощью функции Seek. Наличие запятых-разделителей является обязательным, например:
Put #4,,FileBuffer
Похожие записи
- No related posts found