Лекция 20: Структурный тип - Файл.
1. Концепция файла в Паскале.
2. Виды файлов и описание файлов в Паскале.
3. Открытие файлов.
4. Стандартные процедуры и функции работы с файлами.
5. Текстовые файлы .
6. Особенности работы с типизированными файлами.
1. Концепция файла в Паскале.
Понятие файла является одним из центральных в информатике. Файл - аналог давно существующего в библиотечном деле понятия картотеки (английское слово file и означает, собственно, картотеку). Как и для картотеки, файл - последовательность некоторых записей (компонент), размещаемых на внешнем носителе. Файл представляет самостоятельный объект с точки зрения доступа к нему. Введение понятия файл совершенно необходимо для планирования размещения информации во внешней памяти компьютера (дисках, лентах), а также на экране дисплея, листах на принтере и других внешних устройствах.
В информатике принято различать два вида файлов: последовательные файлы и файлы с прямым доступом.
Для последовательных файлов (типа картотеки) невозможен непосредственный доступ к любой записи: доступ осуществляется только через предыдущие записи. Например, чтобы прочитать 15-ю запись, необходимо прочесть 1,2, ...14-ю запись, даже если они ненужны. Некоторые типы внешних устройств (такие как клавиатура, листы принтера) допускают только последовательный доступ к записям информации.
Файлы с прямым доступом позволяют получить непосредственный (прямой) доступ к любой записи. Примерами файлов с прямым доступом являются дисковые файлы (файлы на винчестере, флоппи-диске или на CD). Дисковые файлы, разумеется, могут быть организованы и как последовательные файлы.
В языке Паскаль файл - структурный тип, представляющий последовательность компонентов-записей любого типа Паскаля (кроме типа файл) и размещаемых на внешнем носителе. Размещение на внешнем носителе гарантирует сохранение файла неизменным, после завершения программы. Файл - единственная структура данных Паскаля, которая сохраняет свою информацию после завершения программы. Файл может размещаться на любом внешнем устройстве компьютера и представляет для программиста логическую структуру, инвариантную к конкретному физическому носителю. Кроме того, файл - типичная динамическая структура, т.к. размер файла может неограничено изменяться в процессе выполнения программы обработки файла (если используются процедуры записи информации в файл).
2. Виды файлов и описание файлов в Паскале.
В зависимости от типа записи файлы классифицируют на три вида:
-Типизированные файлы: все записи файла имеют один и тот же тип.
-Текстовые файлы: все записи файла имеют тип string.
- Нетипизированные файлы: тип записи файла никак не фиксирован.
Описание файла зависит от его вида:
Текстовый файл - стандартный тип файла со стандартным именем text.
Типизированный файл описывается в форме:
type <имя типа> = file of <тип записи>;
Нетипизированный файл описывается в форме:
type <имя типа> = file ;
Как и в случае любых других типов данных, после объявления типа Файл для возможности его использования в программе необходимо объявить переменные этого типа (файловые переменные).
Например: type reestr = file of form;
form= record name:string[20]; regN:integer;date:string[16] end;
var: R1:reestr; T:text;
Здесь: reestr - типизированный файл записей типа form; R1 - файловая переменная типа reestr; Т - файловая переменная типа text (текстовый файл).
Любой программе доступны также две стандартные файловые переменные: input - файл чтения с клавиатуры, output - файл вывода на экран дисплея.