Лекция: Процедура Erase (var F);
Удаляет неоткрытый внешний файл любого типа.
Пример 2. Удаление или переименование файла.
Var F:file; ch:char; St:string;
begin
Write (‘Введите имя файла: ’); ReadLn (St); Assign (F,St); {назначаем имя файловой переменной} Write (‘Удалить файл (У), Переименовать (П), выход (В)’); ReadLn(ch);
Case ch of
‘У’, ‘у’: Erase (F); { удаляем файл }
‘П’, ‘п’: begin Write(‘Введите новое имя файла: ’);
Readln(St);
Rename (F,St); { переименовываем файл } end;
‘В’, ‘в’: Halt (1);
end;
end.
В предыдущем примере выбор действий целиком зависел от того, что будет введено с клавиатуры. Этот вариант программы не позволяет обрабатывать ошибочные ситуации в случае, если файл с именем st не существует на диске.
Для того чтобы файловые операции выполнялись чётко и без ошибок используют специальную функцию.
Функция IOResult: integer;
Используется эта функция в программах в том случае, если на время выполнения файловых операций отключена стандартная проверка операций ввода – вывода.
Для этих целей используется либо специальная опция в интегрированной системе, либо директива компилятора {$I}, которая может задаваться внутри текста программы.
Пример 3.Программа для проверки существования файла на диске.
Var F:file; St: string;
begin
Write (‘Введите имя файла: ’);
ReadLn (St);
Assign (F, St); {назначаем имя файловой переменной }
{$I-} {отключаем стандартную обработку ошибок}
Reset (F); {открываем файл }
{$I+} {включаем стандартную обработку ошибок}
if IOResult=0 then
begin WriteLn (‘Файл существует и нормально открыт’); Close (F);
end
else WriteLn (‘Файла с именем ’ + St + ’ на диске нет.’);
end.
После корректного выполнения операции ввода-вывода функция Ioresult возвращает значение, равное нулю, в остальных функция возвращает соответствующий код ошибки.