Тема «Структурированные типы данных. Файлы»

Знать: Составструктурированных типов данных; Приемы работы с файлами.

Уметь: Создавать файлы, добавлять, удалять, сортировать записи в файле.

В Паскале имеются три класса файлов:

· текстовый файл;

· типизированный файл;

· нетипизированный файл.

Файловый тип переменной — это структурированный тип, представляющий собой совокупность однотипных элементов, хранящихся на внешнем носителе, количество которых заранее не определено.

Структура описания файловой переменной:

Var <имя переменной>: File Of <тип элемента>;

где <тип элемента> может быть любым, кроме файлового. Например:

Var Fi: File Of Integer; Fr: File Of Real; Fc: File Of Char;

Файл можно представить как последовательную цепочку элементов, пронумерованных от 0, заканчивающуюся специальным кодом, называемым маркером конца. Количество элементов, хранящихся в данный момент в файле, называется его текущей длиной. Для того чтобы начать запись в файл, его следует открыть для записи. Это обеспечивает процедура Rewrite (FV); где FV — имя файловой переменной. При этом указатель устанавливается на начало файла. Если в файле есть информация, то она исчезает.

Запись в файл осуществляется процедурой write (fv, v); где v — переменная того же типа, что и файл FV. Запись происходит туда, где установлено окно (указатель). Сначала записывается значение,

Чтение из файла осуществляется процедурой Read (FV, V); где v — переменная того же типа, что и файл FV. Значение текущего элемента файла записывается в переменную V; указатель смещается к следующему элементу.

затем указатель смещается в следующую позицию. Если новый элемент вносится в конец файла, то сдвигается маркер конца.

Пример 1. В файловую переменную Fx занести 20 вещественных чисел, последовательно вводимых с клавиатуры.

Var Fx: File Of Real; X: Real; I: Byte;

Begin

Rewrite(Fx);

For I:=l To 2 0 Do

Begin

Write('?'); ReadLn(X); Write(Fx,X) End End.

Для чтения элементов файла с его начала следует открыть файл для чтения. Это делает процедура Reset (FV).

В результате указатель устанавливается на начало файла. При этом вся информация в файле сохраняется

Пример 2. В переменной х получить 10-й элемент вещественно­го файла Fx.

Program А;

Var Fx: File Of Real;

X: Real; Begin

Reset(Fx);

For I:=l To 10 Do Read(Fx,X) End.

Функция Eof (FV) проверяет маркер конца файла (end of file). Это логическая функция, которая получает значение true, если указатель установлен на маркер конца, в противном случае — false.

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

Reset {Fx);

Sx:=0;

While Not Eof(Fx) Do

Begin

Read(Fx,X); Sx:=Sx+X End;

Последовательность действий для работы с файлами:

· Описать файловую переменную.

· Описать переменную того же типа, что и файл.

· Произвести назначение (Assign).

· Открыть файл для записи (Rewrite).

· Записать в файл данные (Write).

· Закрыть файл (Close).

Пример: Определить среднюю температуру для значений, хранящихся в файле Temp.dat.

Program Task2;

Var Ft: File Of Real;

T,St: Real; N: Integer;

Begin

Assign(Ft,'Temp.dat');

Reset (Ft); St:=0;

While Not Eof(Ft) Do Begin

Read(Ft,T);

St:=St+T

End;

N:=FileSize(Ft);

St:=St/N;

WriteLn('Средняя температура за',N:3, 'суток равна',St:7:2,'гр-в');

Close (Ft); End.

В этой программе использована функция определения размера

файла:

FileSize(<имя файловой переменной>);

Ее результат — целое число, равное текущей длине файла.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: