Общие положения Назад В начало Вперед

Ряд методов объекта File предназначены для его открытия как файла на диске (OpenFile) или мемо-поля базы данных (OpenMemo). Остальные методы становятся доступными с момента открытия и до закрытия объекта в любом месте VIP программы.

Оператор вызова метода объекта File начинается с имени объекта, которое отделяется от остальной части оператора точкой.

Существует набор процедур, совпадающих по назначению и близких по имени к методам объекта File (процедуры имеют префикс File_). Отличие заключается в том, что эти процедуры в качестве входного параметра получают ссылку на объект File (метод Handle) и благодаря этому объект File может передаваться как переменная в VIP-процедуры.

Если при работе метода (процедуры) произошла ошибка, то возникает исключение:

ExDataBase

Исключения при работе с Мемо-полем

ExDbRecordInUse

Запись используется

ExDbNoPosition

Ошибочная позиция

ExDbInvalidField

Передано не мемо-поле в метод File.OpenMemo

ExFile

Исключения при работе с объектом File

ExFileNotFound

Файл не найден

ExPathNotFound

Путь не найден

ExTooManyHandlers

Слишком много открытых файлов

ExFileAccessDenied

Доступ запрещен

ExBadFileHandler

Некорректный код файла

ExDriveNotFound

Указан несуществующий диск

ExCannotDeleteCurDir

Невозможно удалить текущую директорию

ExDiskIsWriteProtected

Попытка записи на защищенный от записи диск

ExDriveNotReady

Диск не готов

ExFileWriteError

Ошибка записи

ExFileReadError

Ошибка чтения

ExFileSharingViolation

Нарушение разделения файла

ExFileIsLocked

Нарушение блокировки файла

ExFileAlreadyExist

Файл уже существует

ExCannotCreateDirectory

Ошибка создания директории

ExNetworkError

Ошибка при работе с сетью

ExNullFileName

Пустое имя файла при открытии файла

ExFileNotOpened

Файл не открыт

ExFileUniversalErrors

Все прочие ошибки работы с файлами

Примеры

Пример 1. Обработка исключений при работе с файлом.

_try {
	aFile.OpenFile ('c:\aFile', stOpen);
	aFile.Seek (aFile.GetSize);
	Message ('Файл создан и открыт');
  }
 _except
   on ExFileNotFound : {
					 aFile.OpenFile ('c:\aFile', stCreate);
					 Message ('Исключение ExFileNotFound');
					 _retry;
};
   on ExFile	: Message ('Исключение ExFile');
 _finally {
	aFile.Close;
	DeleteFile ('c:\aFile');
 };

Пример 2. Основные режимы работы с файлом.

В результате работы примера будет выведено сообщение:

Прочитано из файла

целое: -1

плавающее: 2.00

строка: This is a sample.

Interface TestFileOpen;
 show at (7,5,72,13);
 create view
   as select * from X$FILES;
   File gfFile;

 Screen OneRec;
<<
>>
 end;

 HandleEvent
  cmInit:
  {
	var f : longInt;
	var s : String;
	var i : integer;
	var d : double;
	f := gfFile.Handle;
	gfFile.OpenFile('test.txt', stCreate);
	gfFile.Write('<');
	gfFile.Write(-1);
	File_Write(2.0, f);
	File_WriteLn('>', f);
	gfFile.WriteLine('This ');
	gfFile.WriteLn('is a sample.');
	gfFile.Close;
	File_OpenFile('test.txt', stOpenRead, gfFile.Handle);
	gfFile.Seek(2);
	File_Read(i, f);
	File_Read(d, f);
	File_Seek(15, f);
	File_ReadLn(s, f);
	File_Close(f);
	message('Прочитано из файла ' + File_FileName(f) +
			chr(13)+'целое: ' + i +
			chr(13)+'плавающее: ' + d +
			chr(13)+'строка: ' + s);
	abort;
  }
 end;
end.