Файл – это набор данных, хранящихся во внешней памяти компьютера под заданным именем.

Любой файл имеет три характерные особенности:

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

2. Файл содержит компоненты одного типа. Типом компонентов файла может любой тип.

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

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

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

Например:

c:\catalog1\catalog2\file1.txt.

Каждое имя каталога соответствует входу в подкаталог с таким именем. Знак ".." соответствует входу в надкаталог. Максимально допустимая длина пути – 79 символов.

В программе на ТР имя файла задается в виде текстовой константы, заключенной в апострофы, которая может быть значением строковой переменной:

'\turbo\pas\table.txt'.

Устройства.Использование файлов в ТР было вызвано необходимостью обмена данными с окружением компьютера, его аппаратными средствами: дисплеем, клавиатурой, принтером, каналами ввода-вывода. Все они рассматриваются в ТР как файлы, с которыми можно работать так же, как с обычными файлами. Файлы на внешних устройствах часто называют физическими или внешними файлами. Обращение к устройствам выполняется с помощью специальных имен, которые запрещено использовать для обычных файлов – так называемых имен логических устройств компьютера.

­ CON – консоль. При помощи консоли выводимая информация пересылается на экран дисплея, а вводимая информация воспринимается с клавиатуры;

­ PRN – это наименование принтера. Если к компьютеру подключено несколько принтеров, то обращение к ним осуществляется с помощью логических имен: LPT1, LPT2, LPT3.

­ COM1, COM2, COM3 –это устройства подключения к последовательным портам. Используются для связи с другими компьютерами и для подключения мыши.

­ NUL – нулевое или пустое устройство. Часто используется программистами для отладки программы. Позволяет не создавать отдельный файл. При использовании его для вывода информации – информация никуда не выводится, но сообщается, что вывод произошел успешно.

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

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

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

Описание файлового типа.

Виды файлов. Файловая переменная

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

<Имя> = File of <тип>;

<Имя> = Text;

<Имя> = File;

Здесь имя - имя файлового типа; File of, Text, File –зарезервированные слова; тип – любой тип языка ТР.

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

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

· Текстовые файлы (определяются типом Text);

· Нетипизированные файлы (определяются типом File).

Средства обработки файлов

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

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

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

Здесь ф.п. – файловая переменная, имя файла – текстовое выражение, содержащее имя файла и, если это необходимо, маршрут доступак нему.

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

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

RESET (<ф.п.>);

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

Следующая стандартная процедура инициирует запись информации в файл, связанный с файловой переменной:

REWRITE (<ф.п.>);

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

Следующая стандартная процедура инициирует запись в существующий текстовый файл, при чем указатель файла устанавливается в конец файла:

APPEND (<ф.п.>);

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

Функция IORESULT(<ф.п.>) проверяет существование файла на диске. С помощью этой функции можно избежать исключительной ситуации, возникшей при обращении к несуществующему файлу.

Процедура CLOSE(<ф.п.>) используется для закрытия файла по завершении обработки данных.

Процедура RENAME(<ф.п.>) переименовывает неоткрытый внешний файл любого типа.

Логическая функция EOF(<ф.п.>)выполняетпроверку,не достигнут ликонец файла.

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

var

f: text; str: string;

begin

assign(f, 'file01.txt');

rewrite(f);

writeln(f, 'Этот простой текстовый файл содержит строку текста');

close(f);

reset(f);

readln(f, str);

close(f);

writeln('проверка ввода-вывода в файл');

writeln(str);

end.

Наши рекомендации