Типизированные файлы
Объявление типизированных файлов
Объявление типизированных файлов
Стандартные процедуры для работы с типизированными файлами
Стандартные процедуры для работы с типизированными файлами
Стандартные процедуры для работы с типизированными файлами
Стандартные функции для работы с типизированными файлами
Стандартные функции для работы с типизированными файлами
Создание типизированного файла
Создание типизированного файла
Чтение типизированного файла
Чтение типизированного файла
Особенности работы с типизированными файлами Пример
Особенности работы с типизированными файлами Пример
Нетипизированные файлы
Объявление нетипизированных файлов
Стандартные процедуры для работы с нетипизированными файлами
Стандартные процедуры для работы с нетипизированными файлами
79.17K
Category: programmingprogramming

18_Типизированные файлы

1. Типизированные файлы

1

2. Объявление типизированных файлов

Var
f: file of <тип компонент файла>;
Var
f: file of integer;
или
Type
ff= file of integer;
Var
f: ff;
2

3. Объявление типизированных файлов

Var
f1: file of string;
f2: file of char;
Type
anketa= record
fam, imy:string[20];
end;
ff=file of anketa;
Var
f: ff;
3

4. Стандартные процедуры для работы с типизированными файлами

Процедура read (имя файловой переменной, список ввода);
Список ввода – последовательность переменных того же типа,
что и компоненты файла, через запятую.
Процедура read используется для чтения из файла. Ранее должны
быть выполнены процедуры assignfile и reset. При выполнении
процедуры read указатель автоматически смещается на число
считанных компонент и указывает на КОМПОНЕНТУ, КОТОРАЯ
СЧИТАЕТСЯ СЛЕДУЮЩЕЙ.
var
f: file оf real;
d,d1: real;
begin
assignfile(f, ‘f.dat’);
reset(f);
read(f, d); или read(f, d,d1);
Процедура readln к типизированным файлам НЕ ПРИМЕНЯЕТСЯ!
4

5. Стандартные процедуры для работы с типизированными файлами

Процедура write (имя файловой переменной, список вывода);
Список вывода – последовательность переменных через запятую.
Процедура write используется для записи в файл. Ранее должны
быть выполнены процедуры assignfile и rewrite. При выполнении
процедуры write указатель автоматически смещается на число
записанных компонент и указывает на АДРЕС КОМПОНЕНТЫ,
КОТОРАЯ ЗАПИШЕТСЯ СЛЕДУЮЩЕЙ.
var
f: file of real;
d1,d: real;
begin
assignfile(f, ‘f.dat’);
rewrite(f);
write (f, d); или write (f, d,d1);
Процедура writeln к типизированным файлам НЕ ПРИМЕНЯЕТСЯ!
5

6. Стандартные процедуры для работы с типизированными файлами

Каждая компонента типизированного файла имеет свой номер.
Компоненты типизированного файла нумеруются с 0.
Процедура seek (имя файловой переменной, номер компоненты);
номер компоненты – целое неотрицательное число типа integer
или longint
Процедура seek переставляет указатель на компоненту с
заданным номером. Ранее должна быть выполнена процедура
assignfile.
var
f: file of real;
d: real;
n: integer; или n: longint;
begin
assignfile(f, ‘f.dat’);

n:=5;
seek (f, n); или seek (f, 5);
6

7. Стандартные функции для работы с типизированными файлами

Каждая компонента типизированного файла имеет свой номер.
Компоненты типизированного файла нумеруются с 0.
Функция filepos (имя файловой переменной);
Возвращает номер компоненты файла (целое неотрицательное
число типа integer или longint), на которую указывает указатель
(которая будет обрабатываться следующей).
Ранее должна быть выполнена процедура assignfile.
var
f: file of real;
d: real;
n: integer; или n: longint;
begin
assignfile(f, ‘f.dat’);

n:= filepos (f);
7

8. Стандартные функции для работы с типизированными файлами

Каждая компонента типизированного файла имеет свой
номер. Компоненты типизированного файла нумеруются
с 0.
Функция filesize (имя файловой переменной);
Возвращает длину файла (число компонент в файле (целое
неотрицательное число типа integer или longint)).
Ранее должна быть выполнена процедура assignfile.
var
f: file of real;
d: real;
n: integer; или n: longint;
begin
assignfile(f, ‘f.dat’);

n:= filesize (f);
8

9. Создание типизированного файла

1
2
начало
Связать f с
файлом f.dat
3
Открыть файл f для
записи
4
Цикл А
1≤ i≤n
5
Ввод d
6
7
8
Запись d
в файл f
Цикл А
i
Закрыть
файл f
9
конец
9

10. Создание типизированного файла

var
f: file of real;
d: real;
i, n: integer;
begin
assignfile(f, ‘f.dat’);
rewrite(f);
n:= Memo1.Lines.Count;
for i:=1 to n do begin
d:=strtofloat (Memo1.Lines[i-1]);
write(f,d)
end;
closefile(f)
end;
10

11. Чтение типизированного файла

1
2
начало
Связать f с
файлом f.dat
3
Открыть файл f для
чтения
4
5
не конец
файла f
Да
Читать d
из файла f
Нет
6
Вывод d
7
Закрыть
файл f
8
конец
11

12. Чтение типизированного файла

var
f: file of real;
d: real;
begin
assignfile(f, ‘f.dat’);
reset(f);
while not(eof(f)) do begin
read(f,d);
Memo2.Lines.Add(floattostr(d));
end;
closefile(f)
end;
12

13. Особенности работы с типизированными файлами Пример

Пусть в файле записаны целые числа: 5 21 52 64
Исправить в типизированном файле третью по счету компоненту (заменить
ее значение на число 10).
Результат должен быть: 5 21 10 64
var
f: file of integer;
d, i: integer;
begin
assignfile(f, ‘f.dat’);

reset(f);
i:=3;
seek(f, i-1);
d:=10;
write(f,d);
closefile(f)
end;
Файл открыт для чтения, но туда происходит запись!
Компоненты файла нумеруются с 0.
13

14. Особенности работы с типизированными файлами Пример

Пусть в файле записаны целые числа: 5 21 52 64
Дописать в конец типизированного файла число 10.
Результат должен быть: 5 21 52 64 10
var
t: file of integer;
d,i: integer;
begin
assignfile(f, ‘f.dat’);

reset(f);
i:=filesize(f);
seek(f, i);
d:=10;
write(f, d);
closefile(f)
end;
Файл открыт для чтения, но туда происходит запись!
Компоненты файла нумеруются с 0.
14

15. Нетипизированные файлы

15

16. Объявление нетипизированных файлов

Var
m: file;
Используются при объединении в один
нескольких файлов, тип которых неизвестен
пользователю.
Нетипизированные
файлы
совместимы с любым типом файлов.
16

17. Стандартные процедуры для работы с нетипизированными файлами

Процедура assignfile (имя файловой переменной,
имя файла на диске);
Процедура reset (имя файловой переменной, 512);
Процедура rewrite (имя файловой переменной, 512);
512 – длина в байтах участка (кластера) диска. Размер
кластера выбран для обеспечения максимальной
скорости обмена данными с диском, так как под
нетипизированный файл место на диске выделяется
кластерами.
17

18. Стандартные процедуры для работы с нетипизированными файлами

При работе с нетипизированными файлами используются те же
процедуры и функции, что и с типизированными, кроме процедур
read и write.
Вместо процедуры read используется процедура
blockread (имя файловой переменной, имя переменной, d1, n1);
Вместо процедуры write используется процедура
blockwrite (имя файловой переменной, имя переменной, d1, n1);
имя переменной – имя буфера, куда считывается или откуда
записывается информация;
d1, n1 – целые числа (тип integer)
d1- количество записей, которое считывается или записывается
за одно обращение к диску;
n1 – необязательный параметр (сколько фактически считано или
записано блоков).
Объем памяти под буфер должен вмещать d1 блоков.
Пусть в файле 3 блока.
Если d1=2, то за первое обращение к диску будет считано 2 блока
(d1=n1=2), а за второе – 1 (d1=2, а n1=1)
18
English     Русский Rules