Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornye_raboty_PASKAL.doc
Скачиваний:
15
Добавлен:
25.03.2015
Размер:
969.22 Кб
Скачать

Лабораторная работа 8 файлы и файловые типы данных

Цель работы: выработать практические навыки в написании и отладке программ при работе с файловыми типами данных.

Файлы

Файл представляет собой последовательность компонентов одного типа и одной длины. Число компонентов в файле не фиксировано. В каждый момент доступен только один компонент. Говорят, что на этот компонент установлен указатель файла.

В файлах последовательного доступа (мы будем рассматривать только такие файлы) начать писать в файл можно только с самого его начала, дописывая новые компоненты последовательно один за другим. Для чтения также надо начинать просмотр файла с самого начала.

Файловый тип данных

Общий вид описания файлового типа - type T = file of Tk;

Здесь Т - идентификатор типа; Тк - тип компонента (любой кроме типа file). Каждую переменную-файл надо описать в разделе var. Например, файл F целых чисел:

type AA = file of integer;

var f:AA;

Файл может быть описан и непосредственно при описании переменной, например: var f:file of real;.

Часто компонентами файла являются записи. В этом случае файловую переменную можно описать так:

type zap = record

N : integer;

Fio : array[1..3] of string;

ok : real

end;

var fa:file of zap; ra:zap;

Процедуры обработки файлов

Работа с файлами (в дальнейшем рассмотрим файл с именем F) проводится посредством следующих стандартных процедур.

1 assign(F,ST) - присвоение имени файлу. Имя файла, которое является значением строкового выражения ST, присваивается переменной файлового типа F. Например

assign(F,’ a : fil.dat ’);

2 rewrite(F) - подготовка к записи информации в начало файла F; создание нового файла.

3 write(F,A) - запись значения переменной A в файл F.

4 reset(F) - подготовка к чтению информации с начала файла F.

5 read(F,A) - чтение компонентов файла в переменную A.

6 close(F) - закрытие файла, назначенного переменной F. Если файл был открыт, никогда не следует выходить из программы, предварительно не закрыв его.

Для того, чтобы определить готовность файла к чтению либо к записи информации, существует стандартная функция eof(F). Если указатель файла продвинулся на конец файла (готовность к записи), то эта функция принимает значение true, в остальных случаях - false. В частности, процедура rewrite очищает файл и устанавливает указатель на признак конца файла. Функции eof(F) присваивается значение true. Напротив, процедура reset устанавливает указатель файла на первую компоненту, а функции eof(F) присваивается значение false.

Функцию eof(F) можно использовать в условном операторе после if или в операторе цикла while. Если нужно после if или после while поместить не условие конца, а условие того, что файл не закончен, то применяется следующая конструкция, например:

while not eof(f) do read(f,a);.

Организация нового файла

При выполнении задания предлагается организовать запись в файл исходной информации при помощи цикла с предусловием до тех пор, пока не будет введен признак конца ввода (например, символ *).

При подготовке исходных данных необходимо учесть, что выходная информация программы обработки файла должна составлять не менее половины от входной.

Для удаления записей необходимо использовать рабочий файл, в который сначала последовательно переписать из исходного файла все оставляемые записи, затем исходный файл открыть на запись, рабочий файл - на чтение и все содержимое рабочего файла переписать в исходный файл.

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