Ассемблер и программирование для IBM PC



       

ГЛАВА 17. Дисковая память III: Расширенные функции DOS - часть 4


Ассемблер для IBM PC. Глава 17. 4

C10CREA Использует функцию шест.3C для создания файла и сохраняет файловый номер в элементе данных по имени HANDLE. D10PROC Принимает ввод с клавиатуры и очищает пробелом байты от конца введенного имени до конца области ввода. F10WRIT Записывает файл, используя функцию шест.40. G10CLSE В завершении обработки, используя функцию шест.3E, закрывает файл для того, чтобы создать правильный элемент оглавления.

Область ввода имеет длину 30 байтов и завершается двумя байтами: возврат каретки (шест.0DH) и конец строки (шест. 0AH). Таким образом общая длина области ввода - 32 байта. Программа переносит на диск 32-x байтовые записи, как записи фиксированной длины. Можно опустить байты "возврат каретки" и "конец строки", но включить их, если потребуется сорти ровка файла. Программа DOS SORT требует наличия этих байтов для индикации конца записей. Для нашего примера команда SORT может выглядеть следующим образом:

SORT B:<NAMEFILE.DAT >NAMEFILE.SRT

В результате выполнения данной команды записи из файла NAMEFILE.DAT в возрастающей последовательности будут поме щены в файл NAMEFILE.SRT. Программа, приведенная на рис.17.3 выполняет чтение записей из файла NAMEFILE.SRT и вывод их на экран. Обратите внимание на два момента: 1) Символы воз- врат каретки и конец строки включены в конце каждой записи только для выполнения сортировки и в других случаях могут быть опущены. 2) Записи могут иметь переменную длину (по длине вводимых с клавиатуры имен); эта особенность включает некоторое дополнительное программирование, как это будет по казано на рис.17.4.

------------------------------------------------------------ ------------------------------------------------------------ Рис.17.2. Использование файлового номера для создания файла.

ЧТЕНИЕ ДИСКОВОГО ФАЙЛА ------------------------------------------------------------ В следующих разделах раскрыты требования для открытия и чтения дисковых файлов в расширенной версии DOS.

Открытие файла: шест.3D Если в программе требуется прочитать дисковый файл, то прежде необходимо открыть его, используя функцию шест.3D. Эта операция проверяет правильность имени файла и его нали чие на диске. При открытии регистр DX должен содержать ад рес необходимой ASCIIZ-строки, а регистр AL - код доступа:




Содержание  Назад  Вперед