Типизированный файл – это тип, который подразумевает файл, содержащий последовательность значений указанного базового типа.
Например:
1 2 3 4 5 6 |
type IntFile = file of integer; var f_in, f_out : IntFile; |
Описанный в данном случае тип IntFile можно использовать для связи с файлами на диске, содержащими последовательность целочисленных данных.
Для работы с типизированными файлами используются следующие процедуры и функции.
Процедуры:
Read(<список ввода>) – считывает из файла, связанного с переменной f, значения для одной или нескольких переменных, указанных в <списке ввода> (вспомните стандартные процедуры read и readln);
Write(f,<список вывода>) – записывает в файл, связанный с переменной f, значения выражений, указанных в <списке вывода>; (аналогично стандартной процедуре write);
Seek(f,n) – ищет компоненту с номером n файла, связанного с переменной f, и устанавливает на нее текущий указатель;
Truncate(f) – удаляет часть файла, начиная с текущего указателя и до его конца.
Функции:
FileSize(f) – возвращает текущий размер файла (количество его компонент);
FilePos(f) – возвращает положение указателя – номер текущей компоненты.
Работу с типизированными файлами проиллюстрируем на примере создания файла, содержащего случайные числа в диапазоне от 0 до 1 и вывода его содержимого на экран (пример 20).
Пример 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
uses Crt; type RealFile=file of real; var f : RealFile; PROCEDURE OutFile(f:RealFile); var x:real; begin while not eof(f) do {пока не достигнут конец файла} begin read(f,x); {чтение из файла очередной компоненты} writeln(x:4:2); {вывод ее на экран} end; end; PROCEDURE FillFile(f:RealFile); var i:byte; begin randomize; for i:=1 to 20 do write(f,random); {запись в файл очередного случайного числа} end; BEGIN ClrScr; Assign(f,’demo.dat’); Rewrite(f); FillFile(f); OutFile(f); Close(f); END. |