Пример:
C:=b;
While c<>nil do
Begin
Tmp:=c;
C:=C^.NEXT;
DISPOSE(TMP);
End;
Удаление всего списка, возможно используя процедуру Mark перед созданием списка и процедуры Release после работы со списком.
Данные процедуры следует использовать в том случае, если отсутствует возможность удаления каких-либо других структур.
Файлы ввода-вывода.
Лекция №11
Файлы ввода/вывода. Понятие физического и логического файлов. Основные операции работы с файлами. Типы файлов и общие принципы работы с ними. Буфер ввода/вывода
Файл представляет собой именную область памяти, где сосредоточены различного рода данные.
С понятием файлов также связывают логические устройства: порты ввода-вывода, печатающие устройства, консоль и т.д. Любому файлу соответствует имя, файлы содержа компоненты одного и того же типа. Длина файла ограничена размером внешней памяти.
Понятие физического и логического файла.
Под физическим файлом понимают любой файл операционной системы. С понятием логического файла связывается переменная одного из файловых типов определенных в языке программирования, файловая переменная используется для обращения к физическому файлу. В Паскале существует три типа файловых переменных.
|
|
Пример описание файлов:
Var
F:text;{текстовый}
F1:file of <>{типизированный}
F2:file; {бинарный файл}
Для осуществления связи файловой переменной с физическим файлом используется процедура Assign(<файловая переменная>,<имя физического файла>);
assign(f,‘d.txt‘);
Если в процедуре assign вместо имени файла указать логическое устройство о файловая переменная буде связанна с этим устройством
Assign(f,‘LPT1‘);
Assign(f,’Com’);
После выполнения процедуры assign разрешается работа с физическим файлом, который перед работой необходимо проинициализировать – указать направление передачи файлов.
Открытие файла для чтения Reset;
Reset(<файловая переменная>).
пример
Var
F:text;
.
.
Assign(f,’a.dat’);
Reset(f);
Если файл a.dat существует, то он будет открыт для чтения, при этом файловый указатель в файле будет указывать на 1 компонент.
При открытие файла на чтение, физический файл может отсутствовать на диске, может быть ошибка обращения к файлу, аппаратная ошибка при чтение файла, повреждение файлового пространства. В этом случае возникает ошибка которая прервет выполнение программы, которую можно избежать используя встроенную функцию IOresult.
Пример использования IOresult
Var
F:text;
.
.
Assign(f,’t.txt’);
{$I-}
Reset(f);
{$i+}
if ioresult <>0 then write(‘ошибка обращения к файлу’);