Процедуры и функции для работы с файлами
Для распаковки параметра TIME используется процедура:
UNPACKTIME(Time: Longlnt; var T:DateTime).
В модуле DOS.TPU объявлен следующий тип DateTime:
type DateTime = record year:Word; {год в формате 19ХХ} month:Word; {месяц I..12} day:Word; {день 1..31} hour:Word; {час 0..23} min:Word; {минуты 0..59} sec:Word {секунды 0..59} end;
Результат обращения к процедуре FINDFIRST можно проконтролировать с помощью функции DOSERROR типа WORD, которая возвращает значения:
- 0 – нет ошибок;
- 2 – не найден каталог;
- 18 – каталог пуст (нет указанных файлов).
Процедура FINDNEXT
Возвращает имя следующего файла в каталоге. Формат обращения:
FINDNEXT (<сл.файл>)
Здесь <сл.фаш> – запись типа SEARCHREC (см. выше), в которой возвращается информация о файле.
Следующая простая программа иллюстрирует способ использования процедур FINDFIRST и FINDNEXT. Программа выводит на экран список всех PAS-файлов текущего каталога:
Uses DOS; var S: SearchRec; begin FindFirst('*.pas',AnyFile,S); while DosError = 0 do begin with S do WriteLn(Name:12,Size:12); FindNext(S) end end.
Процедура GETFTIME
Возвращает время создания или последнего обновления файла. Формат обращения:
GETFTIME (<ф.п.>, <время>)
Здесь <время> – переменная типа LONGINT, в которой возвращается время в упакованном формате.
Процедура SETFTIME
Устанавливает новую дату создания или обновления файла. Формат обращения:
SETFTIME (<ф.п.>, <время>)
Здесь <время> – время и дата в упакованном формате.
Упаковать запись типа DATETIME в переменную типа LONGINT можно процедурой:
PACKTIME (var T:DateTime; var Time:LongInt).
(Описание типа DA TETIME см. выше).