Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Файл с типом (типизированный файл) состоит из последовательности записей одинаковой длины и одинакового внутреннего формата. Записи следуют непрерывно друг за другом. Первые 4 байта первого сектора файла содержат количество и длину записи. К файлам с такой организацией можно обращаться последовательно и выборочно (с прямым доступом).
При последовательном доступе записи располагаются на внешнем носителе последовательно в порядке их поступления, т.е. чтение или запись I+1 компоненты возможно только после I –ой компоненты.
При прямом доступе предполагается, что данные располагаются в определенных областях, имеющих последовательные номера, начиная с нуля. Вычисляя значение указателя, фиксирующего номер записи, можно обеспечить прямой доступ к нужной записи, используя процедуру позиционирования SEEK.
Общий вид описания типизированного файла:
TYPE < идентификатор типа >= FILE OF < тип компонент >;
Например,
1) TYPE T = FILE OF REAL;
VAR F: T;
2) VAR F: FILE OF REAL;
3) TYPE ST= RECORD
A: STRING[10];
B: INTEGER;
C: REAL;
D: BYTE
END;
VAR DAN: FILE OF ST;
В первом варианте тип файла описан в разделе описания типов, а затем в разделе описания переменных файловая переменная получает этот тип, во втором варианте тип предварительно не описывается. В третьем варианте предварительно описывается тип записи файла, а в разделе описания переменных этот тип используется для указания типа отдельной записи.
Процедуры чтения и записи для файлов с типом READ и WRITE. Кроме того, используются процедуры и функции ASSIGN, RESET, REWRITE, SEEK, CLOSE, FILEPOS, FILESIZE, EOF. Процедура TRUNCATE обрезает файл на заданной файловой позиции.
Пусть требуется создать файл из записей, данные которых вводятся с клавиатуры. После создания файла содержимое файла вывести на экран.
Структура записи файла следующая:
- фамилия;
- табельный номер;
- заработная плата.
type tz=record
fio:string[10];
tn:integer;
zp:real
End;
var zap:tz;
fout:file of tz;
fl:boolean;
name:string;
Begin
Repeat
writeln('имя файла ');
Дата публикования: 2014-11-04; Прочитано: 517 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!