Процедуры и функции для работы с файлами
Процедура GETFATTR
Позволяет получить атрибуты файла. Формат обращения:
GETFATTR (<ф.п.>, <атрибуты>)
Здесь <атрибуты> – переменная типа WORD, в младшем байте которой возвращаются устанавливаемые атрибуты файла.
Процедура SETFATTR
Позволяет установить атрибуты файла. Формат обращения:
SETFATTR (<ф.п.>, <атрибуты>)
Функция FSEARCH: PATHSTR
Ищет файл в списке каталогов. Формат вызова:
FSEARCH (<имя>, <сп.каталогов>)
Здесь:
- <имя> – имя отыскиваемого файла (строковое выражение или переменная типа PATHSTR; имени может предшествовать путь);
- <сп.каталогов> – список каталогов, в которых отыскивается файл (строковое выражение или переменная типа STRING); имена каталогов разделяются точкой с запятой.
Результат поиска возвращается функцией FSEARCH в виде строки типа PATHSTR. В строке содержится путь и имя файла, если поиск был успешным, в противном случае возвращается пустая строка.
Тип PATHSTR в модуле DOS.TPU объявлен следующим образом:
type PathStr = String[79];
Следует учесть, что поиск файла всегда начинается в текущем каталоге и только после этого продолжается в тех, что перечислены в <сп.каталогов>. Если файл обнаружен, дальнейший поиск прекращается, даже если часть каталогов осталась непросмотренной. В частности, если файл зарегистрирован в текущем каталоге, он "заслонит" собой одноименные файлы в других каталогах.
Пусть, например, на диске имеется файл \SUBDIR\MYFILE.PAS. Тогда в случае, если текущий каталог – корневой, обращение:
FSEARCH ('MYFILE,PAS','\SUB; \SUBDIR').
Вернет строку \SUBDIR\MYFILE.PAS, а обращение:
FSEARCH ('MYFILE.PAS1,'\SUB')
Вернет пустую строку. Однако, если текущим установлен каталог SUBDIR, то в обоих случаях вернется строка MYFILE.PAS (если файл находится в текущем каталоге,в выходной строке путь к нему не указывается).
Процедура FSPLIT
"Расщепляет" имя файла, т.е. возвращает в качестве отдельных параметров путь к файлу, его имя и расширение. Формат обращения:
FSPLIT (<файл>, <путь>, <имя>, <расширение>)
Здесь:
- <файл> – строковое выражение, содержащее спецификацию файла (имя с расширением и, возможно, с предшествующим путем);
- <путь> – переменная типа DIRSTR=STRING [67], в которой возвращается путь к файлу;
- <имя> – переменная типа NAMESTR=STRING [8], в которой возвращается имя файла;
- <расширение> – переменная типа EXTSTR=STRING [4], в которой возвращается расширение с предшествующей ему точкой.
Процедура не проверяет наличие на диске указанного файла. В качестве входного параметра может использоваться переменная типа PATHSTR.
Функция FEXPAND: PATHSTR
Дополняет файловое имя до полной спецификации, т.е. с указанием устройства и пути. Формат вызова:
FEXPAND (<файл>)
Здесь <файл> – строковое выражение или переменная типа PATHSTR.
Функция не проверяет наличие указанного файла на диске, а просто дополняет имя файла недостающими параметрами – текущим устройством и путем к текущему каталогу. Результат возвращается в строке типа PATHSTR.