- •Лабораторная работа №7а (додаткове завдання – виконання за бажанням) Тема: «Работа с файлами»
- •Assign(f:Text, Name:String) Assign(f:File,Name:String)
- •Reset(f, RecSize:Word) Пример
- •Процедура
- •Текстовый файл
- •Writeln – запись всех величин с обязательной установкой маркера конца строки в файл:
- •Параметр Size при вызове может быть опущен. В этом случае размер буфера соответствует SizeOf(Buf).
- •Типизированные файлы
- •Нетипизированные файлы
- •Задания
- •20. На диске сформирован файл, структура которого приведена в п.19.
- •На диске сформирован файл, структура которого представлена на рис.
Лабораторная работа №7а (додаткове завдання – виконання за бажанням) Тема: «Работа с файлами»
Цель работы: научить студента составлять программы с процедурами чтения и записи в текстовые, типизированные, нетипизированные файлы.
В Паскале существуют 3 вида файлов: типизированные, текстовые, нетипизированные (двоичные). Каждому файлу ставится в соответствие файловая переменная определенного типа: для текстового - типа Text , для нетипизированного - типа File, для типизированного – типа File of <переменная типа запись>. Для этого используется процедура
Assign(f:Text, Name:String) Assign(f:File,Name:String)
Assign(F:File of <переменная типа запись>,Name:String),
Где f – переменная любого файлового типа;
Name - имя файла, связываемого с файловой переменной f.
Эта процедура, а также ниже рассматриваемые – являются стандартными подпрограммами, входящими в модуль SYSTEM.
Пример.
a). b)
……… ………..
Var Var
F : Text; Add : File;
……… N : String;
BEGIN ………...
……... BEGIN
Assign (F,’C:\DOCUMENT\Exper.dat’); ………..
……… Writeln(‘Введите имя файла’);
Readln(N);
……….
Assign(Add,N);
……….
c)
………….
Type
Zap =record
Fio : String[20];
Numer: String[10];
Alfa : Real
end;
………….
Var
BookFile:File of Zap;
…………..
BEGIN
…………..
Assign(BookFile,’D:\Direct\N1.dat’);
…………..
Для открытия существующего файла используется процедура RESET(F).
Для создания и открытия файла – REWRITE(F).
При использовании процедуры RESET для текстовых файлов – открытие файла только для чтения. Для нетипизированных файлов в описание процедуры (в ее вызов) добавляется еще один параметр - RecSize типа Word, который устанавливает длину записи для функции обмена файлом.
Процедура RESET
Reset(f, RecSize:Word) Пример
a) b) c)
………. …………. ……………..
Const Var L: File;
DZ:Word=2; DZ:Word; ……………..
………. F :File; BEGIN
Var ………… …………….
F:File; BEGIN Assign(L,’v.dat’);
………. ………… ………………
BEGIN DZ:=5; Reset(L,10);
………. …………. ………………
Assign(F,’v.dat’); Assign(F,’v.dat);
Reset(F,DZ); Reset(F,DZ);
Процедура REWRITE создает и открывает новый файл. Использование этой процедуры требует внимания: при попытке создать и открыть новый файл с именем уже существующего на диске – действие REWRITE сведется к удалению этого набора и созданию нового пустого файла с тем же именем, а это приводит к потере информации.
При открытии новых нетипизированных файлов для задания длины записи в описании процедуры REWRITE добавляется дополнительный параметр RecSize типа Word ( длина записи):
REWRITE(F,RecSize:Word).
После завершения сеанса работы с файлом, его обязательно следует закрыть, используя процедуру:
CLOSE(F).