Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Особенности обработки типизированных файлов.






Файл с типом (типизированный файл) состоит из последовательности записей одинаковой длины и одинакового внутреннего формата. Записи следуют непрерывно друг за другом. Первые 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('ИМЯ ФАЙЛА ');

READLN(NAME);

ASSIGN (FOUT, NAME);

{$I-} RESET(FOUT); {$I+}

IF IORESULT=0 THEN

BEGIN

WRITELN('ФАЙЛ ', NAME, ' УЖЕ ЕСТЬ');

CLOSE(FOUT);

FL: =FALSE

END

ELSE

BEGIN

REWRITE(FOUT);

FL: =TRUE

END

UNTIL FL;

WITH ZAP DO

REPEAT

WRITELN('ВВОД FIO, TN, ZP');

READLN(INPUT, FIO, TN, ZP);

WRITE(FOUT, ZAP);

UNTIL EOF(INPUT);

CLOSE(FOUT);

RESET(FOUT);

WITH ZAP DO

REPEAT

READ(FOUT, ZAP);

WRITELN(FIO: 15, TN: 9, ZP: 8: 2);

UNTIL EOF(FOUT);






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.