Шаг 59.
Функции базовой версии DOS для работы с файлами. Прямой доступ к записям файла

    На этом шаге мы рассмотрим организацию прямого доступа к записям файла.

    В некоторых случаях требуется осуществить доступ к конкретным записям файла. Для этого нужно установить требуемый номер записи в соответствующее поле FCB и выполнить команду прямого чтения или записи.

    Произвольный доступ использует относительный номер записи (байты 33-36) в блоке FCB. Поле имеет размер двойного слова и использует обратную последовательность байтов в словах.

    Для локализации требуемой записи система автоматически преобразует относительный номер записи в номер текущего блока (байты 12-13) и номер текущей записи (байт 32).

    Операции открытия и установки DTA одинаковы как для прямой, так и для последовательной обработки записей. Предположим, что программа должна выполнить прямой доступ к пятой записи файла. Установим значение 05 в поле FCB для относительного номера записи и выполним команды для прямого чтения. В результате успешной операции содержимое пятой записи будет помещено в DTA.

    Для прямого чтения необходимо поместить требуемое значение относительного номера записи в FCB и вызвать функцию 21H:

    MOV  AH,21H      ; Запрос на
    LEA  DX,FILE     ;прямое чтение.
    INT  21H         ; Вызов DOS-прерывания.
(FILE - имя блока FCB).

    Выполненная команда устанавливает следующие значения в регистре AL:

    Операция прямой записи использует относительный номер записи в блоке FCB и функцию 22H следующим образом:

    MOV  AH,22H      ; Запрос на
    LEA  DX,FILE     ; прямую запись.
    INT  21H         ; Вызов DOS-прерывания.

    После ее выполнения в регистре AL устанавливаются следующие коды возврата:

    На следующем шаге мы приведем пример программы, иллюстрирующей некоторые из перечисленных функций.




Предыдущий шаг Содержание Следующий шаг