в языке 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),

которая при выходе указателя за пределы файла выдает выдает «истину» (число отличное от нуля), а при нахождении указателя в пределах файла — «ложь» (нуль).

РАБОТА С ЗАПИСЯМИ ФИКСИРОВАННОЙ ДЛИНЫ

Чтение из файла или запись в файл при фиксированной длине записей могут производиться процедурами чтения из файла в буфер произвольного доступа или в переменную