Общие
положения |
Top Previous Next |
Ряд
методов объекта File предназначены для его открытия
как файла на диске (OpenFile) или мемо-поля базы
данных (OpenMemo). Остальные методы становятся
доступными с момента открытия и до закрытия объекта в любом месте
Vip программы. |
Оператор
вызова метода объекта File начинается с имени
объекта, которое отделяется от остальной части оператора точкой.
|
Существует
набор процедур, совпадающих по назначению и близких по имени к
методам объекта File (процедуры имеют префикс
File_). Отличие заключается в том, что эти процедуры
в качестве входного параметра получают ссылку на объект
File (метод Handle) и благодаря этому
объект File может передаваться как переменная в
VIP-процедуры. |
Если
при работе метода (процедуры) произошла ошибка, то возникает
"исключение": |
· | если
объект открыт методом OpenMemo, то возникают
исключения из группы ExDateBase (некоторые исключения
группы ExDateBase приведены ниже в таблице);
|
· | если
объект открыт методом OpenFile, то возникают
исключения из группы ExFile (см. таблицу). В
обработчике исключений, произошедших в методе
OpenFile, программист имеет возможность переоткрыть
файл и продолжить выполнение оператором _Retry.
|
|
Пример
1 |
_try {
|
aFile.OpenFile
('c:\aFile', stOpen); |
aFile.seek
(aFile.GetSize); |
Message ('Файл
создан и открыт',0); |
}
|
_except
|
on
ExFileNotFound : { |
aFile.OpenFile
('c:\aFile', stCreate); |
Message
('Исключение ExFileNotFound',0); |
_Retry;
|
};
|
on ExFile :
Message ('Исключение ExFile',0); |
_finally {
|
aFile.Close;
|
DeleteFile
('c:\aFile'); |
};
|
Пример
2 |
Пример
иллюстрирует объявление объекта файла из VIP. |
interface
readfile; |
create view;
|
file f_var;
|
var L : string;
|
handleevent
|
cmInit: begin
|
f_var.openfile('c:\test.txt',stCreate);
// создать файл |
f_var.writeln('This
is a sample'); // записать строку в текстовый файл
|
f_var.close; //
закрыть |
f_var.openfile('c:\test.txt',stOpenRead);
// открыть тот же файл |
f_var.readln(L);
// считать строку |
f_var.close; //
закрыть |
message(L); //
вывести mesagebox со считанной строкой |
abort; // что
бы не открывалось окно |
end;
|
end;
|
end.
|