Функция
FindAllFilesEx выполняет поиск всех файлов, соответствующего указанному шаблону имени, и сохраняет его имя в предоставленный буфер. Буфер должен быть достаточно большим, чтобы вместить все имена найденных файлов. Разделителем имён в буфере является 7Fh. При выводе имени файла из буфера необходимо проверять символ на 7Fh. Функция
FindAllFilesEx автоматически выравнивает стек на 6 байт.
Параметры:- Указатель на строку шаблона имени файла (например, "*.txt").
- Указатель на буфер, куда будет сохранено имя найденного файла.
- Атрибуты файла, которые нужно учитывать при поиске (например, скрытые, системные и т.д.).
Возвращаемое значение:- Если CF = 0: Файл найден.
- Если CF = 1: Файл не найден. AX содержит код ошибки.
Состояние флагов:- Функция влияет на все флаги.
Особенности:- Функция не изменяет значения регистров, кроме AX и флагов.
- title Автор: Довгополов Евгений Сергеевич
- .286C
- .model small
- .stack 100h
- data segment public
- ____pattern db "*.obj", 0
- ____buffer__db 128 dup(0)
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handymac.inc
- ____main proc
- ________call____SetDataSegment
- ________push____0
- ________pushs___es:[buffer]
- ________pushs___ds:[pattern]
- ________call____FindAllFilesEx
- ________lea_____si, ds:[buffer]
- ____PrintFilesLoop:
- ________lodsb
- ________test____al, al
- ________jz______Done
- ________cmp_____al, 7Fh
- ________je______NewLine
- ________call____PutChar
- ________jmp_____PrintFilesLoop
- ____NewLine:
- ________call____PrintNewLine
- ________jmp_____PrintFilesLoop
- ____Done:
- ________push____0
- ________call____ExitProcessEx
- ____main endp
- code ends
- end main