Здавалка
Главная | Обратная связь

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



 

Общий вид описания файлового типа - 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);.

 

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

 

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

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

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

 

Файлы с типом

 

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

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.