Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_ вторая часть_новый.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
182.78 Кб
Скачать

Типизированные файлы

Типизированные файлы допускают как последовательный, так и прямой доступ. Элементы типизированных файлов должны быть одного типа и следовательно одного размера. Это могут быть числа, массивы, записи и т.д. Нумеруются элементы файла целыми числами, начиная с нуля. Благодаря этому возможен произвольный доступ к любому элементу типизированного файла, т.е. по номеру однозначно определяется местоположение элемента файла.

Описание:

var <имя файловой переменной> : file of <базовый тип>;

Например:

var f1: file of char; (string; integer;)

В типизированных файлах информация хранится в машинном представлении. Никаких преобразований при вводе-выводе не происходит, поэтому возрастает скорость ввода-вывода, но такую информацию нельзя просмотреть в текстовом редакторе.

Для работы с типизированным файлом надо:

  1. установить связь между файловой переменной и файлом на диске компьютера;

процедура

Assign (<имя файловой переменной>, ‘<путь к файлу>’);

  1. открыть файл для чтения или записи

Reset (<имя файловой переменной >) – открывает уже существующие файлы;

Rewrite (<имя файловой переменной >) – открывает новые файлы. Если файл уже открыт, то он сначала закрывается и затем снова открывается;

  1. Произвести чтение или запись

Чтение:

процедура Read (<имя файловой переменной>, v1,v2,..,vn);

Запись:

процедура Write (<имя файловой переменной >, v1,v2,..,vn);

где v1,v2…,vn – переменные базового типа (того же, что и элементы файла);

Для произвольного доступа можно применить:

a. процедура Seek (<имя файловой переменной >, <номер элемента>: longint);

- устанавливает указатель файла на элемент с указанным элементом. Первая компонента файла имеет номер 0, последняя (n-1), где n – количество компонент в файле.

b. функция FilePos (<имя файловой переменной >):longint;

- определяет текущее положение указателя файла.

с. функция FileSize (<имя файловой переменной >):longint;

-определяет общее количество элементов в файле.

Т.к. типизированные файлы не разбиты на строки, процедуры Readln и Writeln для них не имеют смысла.

4. Закрыть файл.

процедура Close (<имя файловой переменной >);

Пример: составить программу, создает типизированный файл, состоящий из действительных чисел, считывает из него данные и определяет сумму чисел.

Решение: аналогично программе с текстовым файлом, только ftext надо заменить на freal и исправить процедуру WriteToFile.

var

freal:file of real;

name:string[8];

Procedure OpenFile;

<аналогично>

……………….

Procedure WriteToFile

……………….

while not Eof do

begin

readln(x); {ввод очередного числи с клавиатуры}

writeln(freal,x); {запись очередного числа в файл}

end;

……………….

Procedure ReadFile;

<аналогично>

……………….

begin {Program}

<аналогично >

……………….

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]