Вопрос 30-31.
Файловый тип данных. Способы объявления файлов различной логической структуры: типизированные файлы (задаются предложением FILE OF ...); текстовые файлы (определяются типом TEXT); нетипизированные файлы (определяются типом FILE).
Переменные файлового типа могут быть описаны в программе либо с использованием раздела типов Туре, либо явно в разделе переменных Var.
Первый способ объявления файловой переменной (с использованием раздела типов Туре):
Туре <имя типа 1> = File of <базовый тип элементов>;
<имя типа 2> = Text;
<имя типа 3> = File;
Var <имя файловой переменной 1>:<имя типа 1>;
<имя файловой переменной 2>:<имя типа 2>;
<имя файловой переменной 3>:<имя типа 3>;
Второй способ объявления файловой переменной (в разделе переменных Var ):
Var
<имя файловой переменной 1>: File of <базовый тип элементов>;
<имя файловой переменной 2>: File;
<имя файловой переменной 3>: Text;
С каждым файлом можно связать понятие - текущий указатель. Это неявно описанная буферная переменная, которая указывает на номер конкретного компонента файла. Начальный компонент имеет нулевой номер.
Действия с файлами производятся поэлементно, причем в них участвует тот элемент, на который "смотрит" текущий указатель, перемещающийся в результате выполнения действия на следующий элемент.
Стандартные процедуры для работы с файлами
Процедура ASSIGN. Для работы с каким-либо физическим файлом, находящимся на магнитных носителях, необходимо первоначально связать его с файловой переменной (логическим файлом), с помощью которой будет осуществляться доступ к этому физическому файлу. Любой программе доступны два предварительно объявленных файла со стандартными файловыми переменными: INPUT - для ввода данных и OUTPUT - для вывода на экран. Другие файлы, а также логические устройства, становятся доступны программе только после выполнения особой процедуры, которая заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла.
Для установления связи между файловой переменной и именем файла на внешнем устройстве в Турбо Паскале имеется стандартная процедура Assign.
Формат вызова процедуры в программе:
Assign (<имя файловой переменной>, '<имя внешнего файла>');
Второй параметр в процедуре Assign является выражением строкового типа, поэтому заключается в апострофы. В общем виде это выражение может быть записано следующим образом: 'имя диска:\имя каталога:\имя подкаталога\...\имя файла'. Если имена диска и каталога не указаны, то выбирается текущий диск и текущий каталог. Если вместо имени внешнего файла стоят два апострофа без пробела ( " ), то файл связывается со стандартным файлом ввода INPUT или со стандартным файлом вывода -OUTPUT.
Процедура RESET. Данная процедура открывает существующий физический файл, который был связан с файловой переменной. Если под файловой переменной подразумевается текстовый файл, то он будет доступен для чтения только при последовательном доступе к элементам. Если под файловой переменной подразумевается типизированный файл, то он будет открыт и для чтения и для записи как при последовательном доступе к элементам, так и при прямом.
Формат вызова процедуры в программе:
RESET (<имя файловой переменной>);
При этом текущий указ-ль устанавливается на первый элемент файла (с номером 0).
Процедура REWRITE. Данная процедура создает новый физический файл, имя которого связано с файловой переменной. Если такой физический файл уже существует, то он удаляется, и на его месте создается новый пустой файл.
Формат вызова процедуры в программе:
REWRITE (<имя файловой переменной >);
При открытии файла указатель текущей позиции устанавливается в его начало.
Процедура CLOSE. После завершения работы с файлом положено осуществлять закрытие файла. При этом, в случае необходимости, в содержимое файла вносятся все произведенные изменения.
Формат вызова процедуры в программе:
CLOSE (<имя файловой переменной>);
Процедура RENAME. Данная процедура используется для переименования физических файлов.
Формат вызова процедуры в программе:
RENAME (<имя файловой переменной>, '<имя внешнего файла>');
Процедура ERASE. Данная процедура используется для уничтожения физических файлов.
Формат вызова процедуры в программе:
ERASE (<имя файловой переменной>);
Заметим, что процедуры Rename и Erase можно выполнять только для файловых переменных, которые уже связаны с каким - либо физическим файлом. Перед выполнением этих процедур необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.