в языке QBasic значение позиции указателя для произвольного доступа — это номер записи, для последовательного — номер байта относительно начала файла (первая позиция байта — 1). Счет записей и байтов всегда совпадает только для режима BINARY. Указатель используется системными программами для получения физического адреса, кодирование которого зависит от обслуживаемого указателем устройства ввода/вывода и от режима работы с файлом. Так например, при обращении к дисководам на физическом уровне это номер дисковода, номер головки, номер дорожки, номер сектора и номер байта в секторе.
Текущая позиция указателя, по которой может быть записана или прочитана информация, определяется при помощи функции
SEEK(filenuinber%) (9.7), а изменять ее разрешается только для режимов с произвольным доступом
BINARY И RANDOM ПОСрёДСТВОМ Процедуры SEEK [#]filenumber%, positions (9.8)
Где: position& — новое значение указателя для очередного чтения или записи
Информация о позиции указателя может быть получена при помощи другой функции
LOC(filenuinber%) (9.9),
но в отличие от SEEK она для режима BYNARY выдает позицию последнего прочитанного или записанного байта, для RANDOM — номер последней прочитанной или записанной записи и для режимов последовательного доступа —текущее положение указателя файла в байтах, деленное на 128.
При работе с файлом необходимо следить за тем, чтобы указатель не вышел за пределы файла. Попытка обращения за пределы файла приводит к системному сообщению об ошибке. Избежать этого можно двумя способами. Определить длину файла в байтах можно при помощи функции
LOF(filenumber%) (9.10),
чтобы затем контролировать текущее значение указателя. Это удобно только для режима BYNARY , так как для других режимов нужно пересчитывать длину файла в количество записей, что в случае записей произвольной длины невозможно. Более универсальным является использование после очередного чтения или записи функции
EOF(filenumber%) (9.11),
которая при выходе указателя за пределы файла выдает выдает «истину» (число отличное от нуля), а при нахождении указателя в пределах файла — «ложь» (нуль).
РАБОТА С ЗАПИСЯМИ ФИКСИРОВАННОЙ ДЛИНЫ
Чтение из файла или запись в файл при фиксированной длине записей могут производиться процедурами чтения из файла в буфер произвольного доступа или в переменную