Закрытие файла
Вывод в файл
Вопрос
Except
Try
Пример использования операторов
x:= StrToInt(Edit1.Text);
y:= StrToInt(Edit2.Text);
res:= x/y;
Edit3.Text:=FloatToStr(res);
on EZeroDivide do begin
MessageDlg(‘Попытка деления на ноль!’, mtError, [mbOK], 0);
edit2.SetFocus;
edit3.Text:=’Ошибка!’;
end;
on EconvertError do begin
MessageDlg(‘Ошибка преобразования!’+#10#13+EO.message, mtError, [mbOK], 0);
edit2.SetFocus;
edit3.Text:=’Ошибка!’;
end;
else begin
MessageDlg(‘Ошибка не идентифицирована!’, mtWarning, [mbOK], 0);
edit2.SetFocus;
edit3.Text:=’Ошибка!’;
end;
end; end;
Прямая работа с файлами в среде Delphi. Привести примеры прямой работы с файлами, используя стандартные операторы.
Файл — это структура данных, представляющая собой последовательность элементов одного типа. Количество элементов практически не ограничено. В первом приближении файл можно рассматривать как массив переменной длины неограниченного размера.
Непосредственно вывод в текстовый файл осуществляется при помощи инструкций write или writeln. В общем виде эти инструкции записываю следующим образом:
write (Файловая Переменная, Список Вывода)
writeln(Файловая Переменная, Список вывода)
где Файловая Переменная — переменная, идентифицирующая файл, в который выполняется вывод.
Список Вывода — разделенные запятыми имена переменных, значения которых надо вывести в файл. Помимо имен переменных в список вывода можно включать строковые константы.
1.2.1 Открытие файла для вывода
Возможны следующие режимы открытия файла для записи в него данных:
- перезапись (запись нового файла поверх существующего или создание нового файла)
- добавление в существующий файл
Чтобы открыть файл в режиме создания нового файла или замены существующего, необходимо вызвать процедуру Rewrite (f), где f — файловая ременная типа TextFile.
Чтобы открыть файл в режиме добавления к уже существующим данным, находящимся в этом файле, необходимо вызвать процедуру Append (f), f — файловая переменная типа TextFile.
Пример:
{создание нового или замещение существующего файла}
procedure TForml.ButtonlClick(Sender: TObject);
var
f:TextFile;
i:integer;
begin
AssignFile(f, 'a:\test.txt');
Rewrite (f) ;
for i:=l to 3 do
writeln(f,'Строка ',i);
CloseFile(f);
end;
Вот фрагмент программы, соответствующий приведенному алгоритму:
AssignFile (f , filename) ;
{$I-}
Append (f)
{$I +}
if IOResult <>0 then Rewrite (f )
Перед завершением работы программа должна закрыть все открытые файлы. Это делается вызовом процедуры close. Процедура close имеет один параметр — имя файловой переменной. Пример использования процедуры:
CloseFile (f).