Многие задачи требует сохранения данных, после выполнения программы и её закрытия. Это можно осуществить путём записи данных в файл.
Алгоритм работы с файлами следующий:
  1. Объявить переменную файл.
  2. Связать фактический файл с переменной.
  3. Открыть файл на ввод или чтение.
  4. Закрыть файл.

Стандартный паскаль поддерживает два типа файлов: текстовые и не текстовые.
Текстовый файл самая простая файловая структура. Рассмотрим подробнее каждый пункт.

1. Объявление файловой переменной.
Var
f : text;
Текстовый файл объявляется довольно просто.

2. Связать файл с переменной.
Это выполняется с помощью функции assign(f, 'c:\text.txt'); в данном случае мы связали ранее объявленную переменную f с файлом text.txt на диске С: . Разумеется вместо пути в кавычках можно поставить строковую переменную и ввести её в ходе выполнения программы.

3. Теперь в файл можно записывать информацию или читать. Чтобы создать новый файл необходима процедура rewrite(f); она создаёт новый пустой файл, если этой процедурой открыть уже записанный файл, то ошибки не произойдёт, но все данные будут уничтожены. Чтобы этого не произошло файл можно открыть процедурой append(f); тогда новые данные будут дописаны в конец существующего файла. Чтобы прочитать данные из файла он открывается с помощью процедуры reset(f); в этом случае данные из файла можно только читать.
4. И наконец после любой работы с файлом его надо закрыть. За это отвечает процедура close(f); которая закрывает файл.



    Рассмотрим более подробно 3 пункт, мы открыли файл на запись, чтение или добавления данных. Теперь надо добавить данные, за это отвечает уже знакомая нам процедура write, writeln. Чтобы записать в файл например стоку, надо записать write(f, 'строка'); теперь в файл f запишется строка, разумеется там может быть любая переменная. Если записать writeln(f, 'строка'); то запишется строка и файловый указатель перейдёт на следующую строку.

          Для чтения данных из файла предназначена тоже знакомая на процедура read, readln. Чтобы считать ту же строку достаточно написать read(f, s); где s – строковая переменная.



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

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

идентификатор = FILE OF тип-компонента;

Тип — компонента может быть простым числом (integer), структурным типом (Массив), или типом определённым пользователем, например запись.

Рассмотрим тип запись:

TYPE

GOROD = REDORD

ID : INTEGER;

PL : REAL;

NAME : STRING;

END;

Описали тип запись, город. Ниже объявляем переменную файла.

GOROD_F = FILE OF GOROD;

после этого в секции VAR можно объявлять непосредственно файл.

VAR

F : GOROD_F; объявили файл

REC : GOROD; объявили запись

После записи данных в файл его уже нельзя прочитать с помощью текстового редактора, т. к. данные в нём хранятся в двоичной форме, это кстати ускоряет запись и чтение данных из файла. Данные файлы не имеют строк, поэтому при работе с файлом нельзя использовать операторы readln, writeln. Запись и чтение файлов происходит с помощью операторов:

read – read(f, rec); читаем данный из файла в запись REC

write – write(f, rec); записываем данные из записи REC в файл



А теперь к задачам.

Hosted by uCoz