Приложение C. Описание стандартных модулей
111
операционной системы). Если код больше 128, это - код ошибки файловой системы
UniPascal-я. Никакая из процедур (функций) этого модуля (UniDOS) не вызывает
ошибку файловой системы UniPascal-я.
procedure FindFirst(const Path: PathStr; Attr:word; var F:SearchRec);
Действие: Ищет первого файла, чье имя соответствует имени, заданному параметром
Path. Attr - маска, при помощи которой проводится поиск файлов. Например,
пусть необходимо найти файл с именем MYFILE.*. Не смотря на то объявлен ли
он как файл только для чтения (read only) или нет, параметры нужно установить
как следует: Path = 'MYFILE.*' и ATTR = ReadOnly. Если хотим обнаружить все
файлы, начинающиеся с A, нужно установить Path = 'A*.*' и ATTR = AnyFile.
Переменная-параметр F получит результат: имя обнаруженного файла, его
атрибуты и т.д. Этот результат необходимо сохранить, чтобы мог быть
использован для следующего поиска процедурой FindNext. Если обнаружен
требуемый файл, DOSerr возвращает 0, а если не обнаружен, она возвращает
код ошибки, из-за которой он не обнаружен.
procedure FindNext(var F: SearchRec);
Действие: Эта процедура используется для обнаружения следующего появления файла
после применения процедуры FindFirst. Ее действие аналогично тому процедуры
FindFirst, но ей не надо задавать имя и атрибуты, так как они уже были заданы во
время активизации FindFirst. Параметром F должна быть та же самая
переменная (типа SearchRec), которая была задана процедуре FindFirst.
Например, допустим, что необходимо отпечатать содержимое директории, т.е.
хотим реализовать команду DIR операционной системы. Фрагмент программы
вывода имен всех файлов имеет вид:
...
var F: searchrec;
begin
...
FindFirst('*.*', AnyFile, F);
while DosErr = 0 do begin
{ обрабатываем, если обнаружен файл }
WriteDirEntry(f);
{ обработка, т.е. печать имени файла }
FindNext(F);
{ обнаружение следующего файла }
end { while };
...
end.
Здесь не приведен текст процедуры WriteDirEntry, а многоточие является
обозначением, что там находятся другие части программы.
procedure GetDir(drv: byte; var s: DirStr);
Действие: Переменной s присваивается путь (Path) текущей поддиректории для устройства
с номером drv.
procedure GetFAttr(const s: string; var Attr: word);
Действие: Переменной Attr присваивается атрибут файла с именем, заданным
параметром s. Для более удобной обработки атрибута можно использовать
экспортированные константы.
Ограничение: Файл должен быть закрытым.
<<  <  GO  >  >>

Вернуться к началу сайта