Similar presentations:
16_Файлы
1. Файлы
12. В практике программирования встречаются задачи, которые решаются регулярно (множество раз) – начисление зарплаты 2 раза в месяц
- итребуют обработки большого
количества малоизменяемых
данных (список работающих
сотрудников и их оклады).
2
3. До сих пор мы рассматривали данные, которые хранились в ОП ЭВМ, и, как только программа заканчивала свою работу, эти данные
удалялись изпамяти. Поэтому при новом запуске
такой программы данные вводились
повторно (т.к. ОП предназначена для
кратковременного хранения данных).
Для
долговременного
хранения
данных был разработан файловый тип
данных.
3
4. Файл – поименованная (т.е. имеющая имя) область внешней памяти ЭВМ (винчестер (жесткий диск), флеш-память), состоящая из
компонентодинакового
типа.
Максимальное количество памяти,
выделяемое под файл, определяется
емкостью диска (в тысячи раз
больше, чем объем ОП).
4
5. Каждый файл имеет имя, состоящее из двух частей: - собственное имя файла; - расширение имени файла. primer.odt Cобственное имя
файла –строка.
Расширение имени файла –
строка из 3 символов.
5
6. На диске есть каталог файлов, т.е. список всех файлов и их адресов, где они находятся. Иногда к имени файла приписывают имя
диска и папки, где оннаходится.
d:\tp\primer.odt
6
7. На диске есть дорожки. Каждый файл имеет метку начала файла и метку конца файла.
Метка начала файлаКомпоненты
Дорожка
Метка конца файла
Диск
7
8. Проблема: как работать с файлами, размещенными на дисках? Программа работает в ОП, имеющей гораздо меньший объем, чем диск. Для
этогоиспользуется
файловая
переменная – переменная типа указатель.
Файловая переменная представляет собой
«перемещаемый
коридор»
(лифт),
двигающийся по компонентам файла от одной
компоненты к другой. В данный момент
времени всегда доступна одна компонента
файла, та, где «остановился лифт» - куда
указывает невидимый указатель – чей адрес
записан в файловой переменной.
8
9.
ОПМетка начала файла
Компоненты
Метка конца файла
Файловая
переменная
9
10. Файл состоит из отдельных компонент. Длина файла – число компонент в этом файле. Файл, не содержащий ни одной компоненты,
называетсяпустым.
При создании файла не оговаривается количество
компонент в нем (в отличии от массива array [1..10] of
integer). Оно ограничивается объемом диска, где
размещается
этот
файл.
Над файлами можно выполнять два вида
действий:
1.
Просмотр
(чтение
файла).
Он
выполняется
путем
последовательного
продвижения по файлу, начиная с его начала. При
этом как указывалось, в каждый данный момент
времени
доступна
одна
компонента
файла.
2.
Запись
в
файл.
Она выполняется путем добавления новых компонент
в конец первоначально пустого файла.
10
11. Выделяют три типа файлов: 1) текстовые; 2) типизированные; 3) нетипизированные.
1112. Объявление файлов
ТекстовыеVar
t: textfile;
Типизированные
Var
f: file of <тип компонент файла>;
Var
f: file of integer;
или
Type
ff= file of integer;
Var
f: ff;
12
13. Объявление файлов
ТипизированныеVar
f1: file of string;
f2: file of char;
Type
anketa= record
fam, imy:string[20];
end;
ff=file of anketa;
Var
f: ff;
13
14. Объявление файлов
НетипизированныеVar
m: file;
14
15. Стандартные процедуры для работы с файлами
Процедура assignfile (имя файловой переменной,имя файла на диске);
var
f: file of real;
begin
assignfile(f, ‘f.dat’);
Процедура assignfile связывает файловую
переменную с именем вновь создаваемого или
уже существующего файла.
15
16. Стандартные процедуры для работы с файлами
Процедура assignfileЕсли файл размещен (или будет размещен) на
том же диске и в той же папке, где и файл с
программой, то имя диска и папки не
указывается, а если – на разных дисках (папках),
то - указывается.
var
f: file of real;
begin
assignfile(f, ‘d:\tp\f.dat’);
16
17. Стандартные процедуры для работы с файлами
Процедура closefile (имя файловой переменной);Закрывает ранее открытый файл. Ранее
должна быть выполнена процедура assignfile.
var
f: file of real;
begin
assignfile(f, ‘f.dat’);
…
closefile(f);
17
18. Стандартные процедуры для работы с файлами
Процедура reset (имя файловой переменной);Открывает файл для чтения, устанавливает
указатель на начало файла. Ранее должна быть
выполнена процедура assignfile.
var
f: file of real;
begin
assignfile(f, ‘f.dat’);
reset(f);
…
closefile(f);
18
19. Стандартные процедуры для работы с файлами
Процедура rewrite (имя файловой переменной);Открывает файл для записи, устанавливает
указатель на начало файла. Если в файле что-либо
было записано, то информация уничтожается. Ранее
должна быть выполнена процедура assignfile.
var
f: file of real;
begin
assignfile(f, ‘f.dat’);
rewrite(f);
…
closefile(f);
19
20. Стандартные процедуры для работы с файлами
Процедура rename (имя файловой переменной,новое имя файла);
Переименовывает файл. Перед ее выполнением
необходимо закрыть файл.
var
f: file of real;
begin
assignfile(f, ‘f.dat’);
…
rename(f, ‘newname.dat’);
…
20
21. Стандартные процедуры для работы с файлами
Процедура erase (имя файловой переменной);Уничтожает (стирает) файл. Ранее должна быть
выполнена
процедура
assignfile.
Перед
ее
выполнением необходимо закрыть файл.
var
f: file of real;
begin
assignfile(f, ‘f.dat’);
…
erase (f);
21
22. Стандартные функции для работы с файлами
Функция eof (имя файловой переменной);Логическая функция. Возвращает значение true, если
указатель стоит в конце файла, и false – иначе. Ранее
должна быть выполнена процедура assignfile.
eof (f)
end of file – конец файла
Это не полный перечень стандартных процедур и
функций для работы с файлами.
22
23. Особенности работы с файлами
Если файловая переменная любого типаявляется параметром подпрограммы, то она всегда
является
формальным
параметром-переменной
(перед ней ставится var), так как в процессе работы
программы она может менять свои значения (адреса
компонент файла).
procedure pl(var t:textfile);
23
programming