Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы к экзамену 1-2сем.doc
Скачиваний:
6
Добавлен:
23.09.2019
Размер:
186.88 Кб
Скачать

6.Текстовые файлы. Процедуры и функции для работы с текстовыми файлами.

С каждым файлом на диске должна быть связана файловая переменная, которая описывается в соответствии с типом файла на диске. Представителем же текстового файла в Pascal-программе является переменная файлового типа, которая должна быть описана с указанием стандартного типа text:

Var TextFile : text;

Обращение к файлу в дальнейшем идёт через файловую переменную.

Далее доступ к файлу требуется открыть. Открыть любой файл можно на чтение и на запись. Для этого существуют процедуры reset, rewrite.

К примеру, пусть на диске создан текстовой файл text.txt.

Для Turbo Pascal описание и связывание файловой переменной f с файлом text.txt, будет выглядеть так:

Var

f: text;

Begin

assign(f, 'd:\tp7\bin\text.txt'); {Полный путь до файла}

reset(f);{Открыть на чтение]

. . .

End.

assign([файл. пер. ], [полный путь до файла на диске]) - связывает файл на диске с файловой переменной f типа текст.

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

Способы обмена с текстовыми файлами

I Операции чтения из файла : reset(f) - открывает существующий файл на чтение. Файловая переменная должна быть связана с внешним файлом с помощью процедуры assign.

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

Если f было присвоено пустое имя, например, assign((f),' '), то после обращения к процедуре Rezet(f) будет ссылкой на стандартный файл ввода (канал 0).

Текстовой файл становится доступным только по чтению.

II Операции записи в файл

rewrite(f) - создает и открывает новый файл. Файловая переменная должна быть связана с внешним файлом с помощью процедуры assign.

Если внешний файл уже существует, то он удаляется и на его месте создаётся новый пустой файл. Если файл уже открыт, то он закрывается, а затем открывается вновь. Текущая позиция в файле устанавливается на начало файла.

Если f было присвоено пустое имя (например, assign((f),' '), то после обращения к процедуре rewrite(f) будет ссылкой на стандартный файл вывода (канал 1).

Примечание: файл должен быть открыт для вывода.

III Логическая функция Eoln

Часто для обработки текстовых файлов используется специфичная для них функция Eoln, позволяющая определить достигнут ли конец строки. Если достигнут – значение функции равно True, а если нет – False.

IV Процедура открытия файла для дополнения

append(f : Тext) – процедура открывает существующий файл для присоединения. Если файл уже открыт, то он сначала закрывается, а затем открывается заново. Текущая позиция устанавливается на конец файла.

7.Процедуры и функции модуля dos для работы с файлами.

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

Сначала рассмотрим процедуры модуля System.

Напомним, что он подключен к программам по умолчанию, то есть его не требуется подключать к программе в разделе Uses.

До начала работы с файлами устанавливается связь файловой переменной МуFilе с именем дискового файла. Очень важно различать собственно файл (область памяти на магнитном носителе с некоторой информацией) и переменную файлового типа в некоторой Turbo Pascal-программе. Считается, что файловая переменная является представителем некоторого дискового файла в программе. Для того, чтобы реализовать доступ к файлу на магнитном диске, программа должна связать его с файловой переменной. Для этого необходимо сопоставить переменную с именем файла. Это имя представляется в виде строки, содержащей полное имя файла и, может быть, маршрута к файлу, который формируется по общим правилам MS-DOS.

Например,

assign (МуFilе, 'с:\МуDirectory\Result.dat');

здесь приведено полное (с указанием пути) имя пользовательского файла Result.dat.

Если путь не указан, программа будет искать файл только в своем рабочем каталоге и, как это принято в системе DOS, по указанным в файле аutoехес.bat путям. Кроме указания имени файла на дисковом накопителе может быть указано стандартное имя одного из устройств ввода-вывода: «соn» – консоль, то есть дисплей и клавиатура, «рrn» – или «lpt1» – принтер.

Не разрешается связывать с одним физическим файлом различные файловые переменные в программе.

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

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

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

closе (МуFilе);

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