Следует отметить, что с файловой системой в Паскале связано понятие буфера ввода-вывода.
Буфер – это область в памяти, которая выделяется для каждого файла. При записи в файл вся информация сначала направляется в буфер и накапливается там до тех пор, пока весь объем буфера не будет заполнен. Только после этого (или после специальной команды) происходит передача данных на внешнее устройство. При чтении из файла данные вначале считываются в буфер, причем не сколько запрашивается, а сколько поместится в буфер.
Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с внешними устройствами. Однако следует отметить, что если по какой-то причине при завершении работы с выходным файлом не будет выполнена процедура Close, то файл хотя и будет создан на внешнем устройстве, но содержимое последнего буфера в него не перенесется.
1. Что понимают под файлами в языке Паскаль?
2. Какие типы файловых переменных существуют в языке Паскаль?
3. Какие основные операции над файлами существуют в языке Паскаль?
4. Что такое буфер ввода-вывода?
Типизированный файл – это файл с объявленным типом его компонент.
Типизированные файлы хранят информацию в том виде, в котором она представлена в памяти компьютера. В этом плане они неудобны для человека: его нельзя просмотреть, создать или отредактировать, например, с помощью текстового редактора. Однако все эти неудобства компенсируются скоростью работы с данными.
Элементы типизированных файлов могут относиться к любому базовому или структурированному типу данных. Единственное ограничение: все элементы должны быть одного и того же типа.
Описание типизированных файлов может иметь вид:
type <имя файлового типа> = file of <тип компонент>;
Пример: описать переменную - типизированный файл
type
FIO = String[20];
Spisok = file of FIO;
var
Stud: Spisok;
Prep: Spisok;
Здесь Stud, Prep – имена файлов, компонентами которых являются строки.
Описание файлов можно задавать и непосредственно в разделе описания переменных.
Пример: описание файловых переменных в разделе var
var
fsimv: file of char;
fr: file of real;
Как уже упоминалось выше, компонентами файла могут быть все скалярные типы, а из структурированных – массивы, множества, записи. Практически во всех конкретных реализациях языка Паскаль конструкция "файл файлов" недопустима.
Никакая файловая переменная не может быть задана константой.