![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Особенности обработки типизированных файлов. ⇐ ПредыдущаяСтр 3 из 3
Файл с типом (типизированный файл) состоит из последовательности записей одинаковой длины и одинакового внутреннего формата. Записи следуют непрерывно друг за другом. Первые 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);
|