Системное программное обеспечение. Рощин А.В. - 62 стр.

UptoLike

Составители: 

62
Функция 4eh: Найти 1-й совпадающий файл
Вход AH = 4fh
DS:DX = адрес строки ASCIIZ с именем файла (допускаются ? и *)
CX = атрибут файла для сравнения
Выход AX = код ошибки, если CF установлен, DTA заполнена данными
(если не было ошибки)
Описание: DS:DX указывает на строку ASCIIZ в форме:
"d:\путь\имя_файла",0. Если диск и/или путь опущены, они
подразумеваются по умолчанию. Символы
замены * и ? допускаются в
имени файла и расширении. DOS находит имя первого файла в каталоге,
которое совпадает с заданным именем и атрибутом, и помещает найденное
имя и другую информацию в DTA, как показано ниже:
DTA
Смещение Длина Содержимое Примечания
+0 15h Резерв Используется в последующих
вызовах 4fh Find Next
+15h 1 Атрибут Атрибут искомого файла
+16h 2 Время Время создания/модификации в
формате filetime
+18h 2 Дата Дата создания/модификации в
формате filedate
+1ah 4 Младший,
старший
Размер файла в байтах в формате
DWORD
+1eh 0dh Имя файла 13-байтовое ASCIIZ имя:
"filename.ext",0
+2ch Требуемый размер буфера
Замечания
: Атрибут файла обычно используется во "включающем" поиске.
Если вас интересуют как файлы, так и каталоги, установите бит атрибута 4
(т.е. attr = 10h). См. Атрибут файла для полной информации. Типичная
последовательность, используемая для поиска всех подходящих файлов:
используйте вызов 1ah, чтобы установить DTA на локальный буфер (или
используйте текущую DTA в PSP по смещению 80h); установите
CX=атрибут, DS:DX => ASCIIZ
диск, путь, обобщенное имя; вызовите
функцию 4eh (Найти 1-й); если флаг CF указывает ошибку, вы закончили
(нет совпадений); установите DS:DX => DTA (или на данные, которые вы
скопировали из DTA после вызова функции 4eh); повторять поиск
последующих файлов с использованием функции 4fh (Найти следующий),
пока установленный флаг переноса (CF) не покажет, что совпадений
больше нет.
                                   62




Функция 4eh: Найти 1-й совпадающий файл
Вход AH = 4fh
      DS:DX = адрес строки ASCIIZ с именем файла (допускаются ? и *)
      CX = атрибут файла для сравнения
Выход AX = код ошибки, если CF установлен, DTA заполнена данными
        (если не было ошибки)
Описание: DS:DX указывает на строку ASCIIZ в форме:
"d:\путь\имя_файла",0. Если диск и/или путь опущены, они
подразумеваются по умолчанию. Символы замены * и ? допускаются в
имени файла и расширении. DOS находит имя первого файла в каталоге,
которое совпадает с заданным именем и атрибутом, и помещает найденное
имя и другую информацию в DTA, как показано ниже:

                                 DTA
Смещение    Длина   Содержимое                 Примечания
   +0        15h      Резерв  Используется в последующих
                              вызовах 4fh Find Next
  +15h        1     Атрибут   Атрибут искомого файла
  +16h        2      Время    Время создания/модификации в
                              формате filetime
  +18h        2       Дата    Дата создания/модификации в
                              формате filedate
  +1ah        4    Младший, Размер файла в байтах в формате
                   старший DWORD
  +1eh       0dh Имя файла 13-байтовое ASCIIZ имя:
                              "filename.ext",0
  +2ch      Требуемый размер буфера

Замечания: Атрибут файла обычно используется во "включающем" поиске.
Если вас интересуют как файлы, так и каталоги, установите бит атрибута 4
(т.е. attr = 10h). См. Атрибут файла для полной информации. Типичная
последовательность, используемая для поиска всех подходящих файлов:
используйте вызов 1ah, чтобы установить DTA на локальный буфер (или
используйте текущую DTA в PSP по смещению 80h); установите
CX=атрибут, DS:DX => ASCIIZ диск, путь, обобщенное имя; вызовите
функцию 4eh (Найти 1-й); если флаг CF указывает ошибку, вы закончили
(нет совпадений); установите DS:DX => DTA (или на данные, которые вы
скопировали из DTA после вызова функции 4eh); повторять поиск
последующих файлов с использованием функции 4fh (Найти следующий),
пока установленный флаг переноса (CF) не покажет, что совпадений
больше нет.