CodeNet / Языки программирования / Ассемблер / Прерывания DOS и BIOS
CodeNet / Платформы / Другие платформы / DOS / Прерывания DOS и BIOS
CodeNet / Платформы / Другие платформы / DOS / Прерывания DOS и BIOS
DOS Fn 4eH: Найти 1-й совпадающий файл
Вход
- AH = 4fH
- DS:DX = адрес строки ASCIIZ с именем файла (допускаются ? и *)
- CX = атрибут файла для сравнения
Выход
- AX = код ошибки если CF установлен
- DTA = заполнена данными (если не было ошибки)
Описание:
DS:DX указывает на строку ASCIIZ в форме: "d:\путь\имяфайла",0. Если диск и/или путь опущены, они подразумеваются по умолчанию. Обобщенные символы * и ? допускаются в имени файла и расширении. DOS находит имя первого файла в оглавлении, которое совпадает с заданным именем и атрибутом, и помещает найденное имя и другую информацию в DTA, как показано ниже:
Замечания:
Атрибут файла обычно используется во "включающем" поиске. если вас интересуют как файлы, так и оглавления, установите бит атрибута 4 (т.е. attr | 10H). См. атрибут файла для полной информации.
Типичная последовательность, используемая для поиска всех подходящих файлов:
- используйте вызов 1aH, чтобы установить DTA на локальный буфер (или используйте умалчиваемую DTA в PSP по смещению 80H)
- уст. CX=атрибут, DS:DX => ASCIIZ диск, путь, обобщенное имя
- вызовите функцию 4eH (Найти 1-й)
- если флаг CF указывает ошибку, вы закончили (нет совпадений)
- уст. DS:DX => DTA (или на данные, которые вы скопировали из DTA после вызова функции 4eH)
- повторять
- обработать имя файла и данные по адресу DS:DX
- вызвать функцию 4fH (Найти следующий)
- пока Carry-флаг не покажет, что совпадений больше нет