Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алг яз Лаб 6(I-ИСТ).doc
Скачиваний:
10
Добавлен:
05.11.2018
Размер:
244.74 Кб
Скачать

2.1.6. Закрытие файла

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

Close(имя_файловой_переменной);

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

Закрытие не отменяет связи логического файла с физическим (Assign). Попытка закрыть ещё неоткрытый или уже закрытый файл приведёт к прерыванию выполнения программы. Закрытие файлов гарантирует сохранность записываемой в них информации. Это связано с буферизацией операций ввода-вывода (рис. 1). Буфер – это участок оперативной памяти, закреплённый за открытым файлом и предназначенный для обмена информацией между программой (логическим файлом) и внешней памятью (физическим файлом). При выводе информации записи помещаются в буфер и лишь после его заполнения выводятся на внешний носитель. Закрытие файла (Close) вызывает принудительную очистку буфера ввода-вывода.

Пример:

Close(FI); {Закрыть файл FI}

Рис. 1. Буферизация операций ввода вывода

2.2. Текстовые файлы

Текстовые файлы представляют собой последовательность строк, а строки – последовательность символов.

Для описания текстовых файлов в языке Pascal определен стандартный тип Тext:

Var TF1, TF2: Text; {Объявление файловых переменных}

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

Кроме перечисленных процедур и функций, также могут быть использованы следующие:

ReadLn(имя_файловой_переменной, имя_переменной);

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

WriteLn(имя_файловой_переменной, имя_переменной);

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

ReadLn(имя_файловой_переменной); – пропускает строку до начала следующей;

WriteLn(имя_файловой_переменной); – завершает строку файла, в которую производится запись, признаком конца строки и переходит к началу следующей.

Строки текстового файла имеют переменную длину, каждая строка завершается признаком конца строки. С признаком конца строки связана функция EOLn(имя_файловой_переменной). Эта функция возвращает значение true, если достигнут конец строки, и значение false, если конец строки не достигнут. Данная функция применяется, если файл читается посимвольно и необходимо проверить достижение конца строки.

Процедура Append(имя_файловой_переменной) служит для специального открытия текстовых файлов. Она применима к уже существующим физическим файлам и открывает их для добавления информации в конец файла.

В языке Pascal понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

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

CON – консоль (экран-клавиатура), то есть при записи в это устройство будет выводиться информация на экран, при чтении информации из этого устройства будет выполняться ввод данных с клавиатуры.

PRN – принтер. При записи в это устройство информация будет выведена на принтер.