Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Паскаль (Часть 1 и 2).doc
Скачиваний:
48
Добавлен:
29.03.2015
Размер:
1.78 Mб
Скачать

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

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

F

F1

F2

F3

……….

где F- имя файла, а F1, F2, F3- его элементы.

В программировании существует несколько разновидностей файлов, отличающихся методом доступа к его компонентам. Мы рассмотрим простейший метод доступа, состоящий в том, что по файлу можно двигаться только последовательно, начиная с первого его элемента, и, кроме этого, всегда существует возможность начать просмотр файла с его начала. Таким образом, чтобы добраться до пятого элемента файла, необходимо, начав с первого элемента, пройти через предыдущие четыре элемента. Такие файлы называются файлами последовательного доступа, или последовательными файлами. Так что, например, невозможно прочитать 100-й элемент последовательного файла, не прочитав предыдущие 99.

9.1. Инициализация файла

Имя файла дает возможность программе работать одновременно с несколькими файлами, длина файла ограничивается только емкостью устройств внешней памяти.

Файловый тип или переменную файлового типа можно задать одним из трех способов:

<имя>=FILE OF <тип>;

<имя>=TEXT;

<имя>=FILE,

где <имя> - имя файлового типа,

FILE,OF - зарезервированные слова (файл, из);

TEXT - имя стандартного типа текстовых файлов.

От способа объявления можно выделить три вида файлов:

  1. Типизированные файлы (задаются предложением FILE OF);

  2. Текстовые файлы (тип TEXT);

  3. Нетипизированные файлы (тип FILE).

Файлы, а также логические устройства, становятся доступны программе только после выполнения особой процедуры открытия файла(логического устройства). Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него.

Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN:

ASSIGN(<ф.п.>,<имя файла или л.у.>);

здесь <ф.п.> - файловая переменная ( правильный идентификатор, объявленный в программе как переменная файлового типа);

<имя файла или л.у.> - текстовое выражение, содержащее имя файла или л.у.

Например:

Var: data:file of integer ; {задаём файловую переменную data содержащую целые числа типа integer}

begin

assign(data, ’ c:\tp\user.me ’); {связываем файловую переменную с существующим файлом или с файлом который будет создан}

end.

Инициировать файл означает указать для этого файла направление передачи данных. В TP можно открыть файл для чтения, для записи информации, и для чтения и записи одновременно.

Для чтения файл инициируется с помощью стандартной процедуры RESET:

RESET(<ф.п.>);

где <ф.п.> - файловая переменная, связанная ранее процедурой ASSIGN с уже существующим файлом.

Также можно обращаться к типизированным файлам, открытым процедурой RESET, с помощью процедуры REWRITE (для текстовых - нельзя).

Стандартная процедура:

REWRITE(<ф.п.>)

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

Стандартная процедура:

APPEND(<ф.п.>)

инициирует запись в ранее существовавший текстовый файл для его расширения - эту процедуру можно использовать только для текстовых файлов.

CLOSE(<ф.п.>)

закрывает файл, но связь с <ф.п.> с именем файла сохраняется, при выходе из программы все файловые переменные задействованы процедурами RESET(<ф.п.>), REWRITE(<ф.п.>), APPEND(<ф.п.>), должны бать закрыты процедурой CLOSE(<ф.п.>).

ERASE(<ф.п.>)

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

Например:

Var: data:file of integer ; {задаём файловую переменную data содержащую целые числа типа integer}

begin

assign(data, ’ c:\tp\user.me ’); {связываем файловую переменную с существующим файлом или с файлом который будет создан}

reset(data);

………….. {тело программы которая в своей работе }

………….. {использует данные записанные ранее в файл user.me }

…………..

…………..

close(data);

end.