Файлы в Pascal. Понятия файла и файловой переменной. Внешние файлы

Файлы в Pascal.


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

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

Турбо Паскаль поддерживает три файловых типа:
  1. типизированные файлы – файлы, состоящие из компонентов одного типа, число которых заранее не определено;
  2. безтиповые файлы – файлы, где информация записывается и считывается блоками определенного размера, в них могут храниться данные любого вида и структуры; 
  3. текстовые файлы – файлы, состоящие из любых символов. Они организуются по строкам, каждая из которых заканчивается символом «конец строки». В конце файла ставиться символ «конец файла». Информацию текстового файла можно просмотреть с помощью любого текстового редактора.
Понятие файла в Паскале употребляют в двух смыслах:
  1. как поименованная область данных на внешнем носители (внешний файл)
  2. как переменная файлового типа (внутренний файл)
В программе между этими объектами устанавливают связь и все, что в процессе выполнения программы происходит с внутр. файлом, дублируется во внешний. Над элементами файла можно делать только 2 операции: читать с файла, записывать в файл.

Обработка типизированных файлов.

Переменную файлового типа описывают одним из двух способов:
Var <имя файл.переменной>:file of <тип элементов>; 
 
Тип может быть любым, кроме файлового.
type <имя типа>=file of <тип элементов>;
Var <имя файла>: <имя типа>;

Стандартные процедуры и функции

Assign(f, x)
- связывает файловую переменную f с физическим файлом, полное имя которого задано в строке x. Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение.

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

Reset(f)
открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента.
Если f - типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.

Rewrite(f)
открывает для записи файл и очищает его.

Close(f)
закрывает открытый до этого файл с файловой переменной f. EOF(f) возвращает значение TRUE, когда при чтении достигнут конец файла.

Rename(f, NewName)
позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.

Erase(f)
уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.

Чтение из текстового файла

Read(f, список переменных); ReadLn(f, список переменных);


Процедуры читают информацию из файла f в переменные. Способ чтения зависит от типа переменных, стоящих в списке. Отличие ReadLn от Read в том, что в нем после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки. Если список переменных отсутствует, то процедура ReadLn(f) пропускает строку при чтении текстового файла.

Запись в текстовый файл

Write(f, список переменных); WriteLn(f, список переменных);

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