Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Значения файлового типа

Значения файлового типа представляются в виде записей. Типи-

зированные и нетипизированные файлы занимают 128 байт, которые

располагаются по следующей схеме:

type

TFileRec = record

Handle : word; { описатель }

Mode : word; { режим }

RecSize : word; { размер записи }

Private : array[1..26] of byte;

UserData : array[1..16] of byte;

Name : array[0..79] of char;

end;

Текстовые файлы занимают 256 байт со следующей схемой распо-

ложения:

type

TTextBuf = array[0..127] of char;

TTextRec = record

Handle : word;

Mode : word;

BufSize : word;

Private : word;

BufPos : word;

BufEnd : word;

BufPtr : ^TTextBuf;

OpenFunc : pointer;

InOutFunc : pointer;

FlushFunc : pointer;

CloseFunc : pointer;

UserData : array[1..16] of Byte;

Name : array[0..79] of Char;

Buffer : TTextBuf;

end;

В переменной Наndlе содержится номер описателя файла (когда

файл открыт). Это значение возвращается DOS.

Поле Моdе считается равным одному из следующих значений:

const

fmClosed = $D7B0;

fmInput = $D7B1;

fmOutput = $D7B2;

fmInOut = $D7B3;

Значение fmClosed показывает, что файл закрыт. Значения

fmInput и fmOutput показывают, что файл является текстовым файлом

и что для него была выполнена процедура Reset (fmInput) или

Rewrite (fmOutput). Значение fmOutput показывает, что переменная

файлового типа является типизированным или нетипизированным фай-

лом, для которого была выполнена процедура Reset или Rewrite. Лю-

бое другое значение говорит о том, что для файловой переменной

присваивание не было выполнено (и она, таким образом, не инициа-

лизирована).

Поле UserData в Borland Pascal недоступно, и пользователь-

ские программы могут сохранять в нем данные.

Поле Nаме содержит имя файла, которое представляет собой

последовательность символов, оканчивающуюся нулевым символом

(#0).

Для типизированных и нетипизированных полей RесSizе содержит

длину записи в байтах, а поле Рrivate зарезервировано, но являет-

ся свободным.

Для текстовых файлов BufPtr является указателем на буфер

размером BufSize, BufPоs представляет собой индекс следующего

символа в буфере, который должен быть записан или прочитан, а

BufEnd - счетчик допустимых символов в буфере. Указатели

OpenFunc, InOutFunc, FlushFunc и CloseFunc служат для ссылки на

программы ввода-вывода и используются для управления файлом. В

Главе 14 в разделе под заглавием "Драйверы устройств для тексто-

вых файлов" приводится дополнительная информация по этому вопро-

су.

Соседние файлы в предмете Программирование на Pascal