Процедуры reset, rewrite

Лабораторные работы №14

Тема: Работа с типизированными файлами.

Цель: Развить навыки обработки типизированных файлов.

Оборудование и материалы: Методическое пособие, ПЭВМ, ручка, карандаш, линейка, ластик, шаблон А4.

Ход работы

Методические рекомендации.

Прежде чем приступить к выполнению индивидуальных заданий, ознакомьтесь с типами файлов, процедурами управления файловыми данными. Обратите внимание на процедуры, позволяющие оптимизировать процесс обработки файлов. Решение задач представить в следующем порядке: постановка задачи, построение математической модели, программный код, тестирование.

Задание для лабораторной работы выбрать согласно варианту по приведённой таблице. Вариант определяется порядковым номером в журнале группы.

Общие сведения.

1. Классификация файлов. В программе существует три класса файлов - типизированные, бестиповые и текстовые, - которые позволяют считывать большие объемы данных непосредственно с диска, не вводя их с клавиатуры.

Текстовыми называют файлы, состоящие из любых символов. Они органи­зуются по строкам, каждая из которых заканчивается символом «конец стро­ки». Конец самого файла обозначается символом «конец файла». При записи информации в текстовый файл, просмотреть который можно с помощью лю­бого текстового редактора, все данные преобразуются в символьный тип и хра­нятся в этом виде.

Файлы, состоящие из компонентов одного типа, число которых заранее не определено и может быть любым, называются типизированными. Они заканчи­ваются символом "конец файла», хранятся в двоичном виде и не просматри­ваются с помощью текстовых редакторов.

В бестиповых (нетипизированных) файлах информация считывается и записывается блоками определенного размера. В них могут храниться данные любого вида и струк­туры.

Описание файловых переменных.

Текстовый файл описывается с помощью служебного слова text.

var f: text;

Типизированные файлы могут описываться следующим образом:

var f: file of тип;

Предварительно можно определить новый тип данных:

Type имя = file of тип;

Бестиповый файл описывается с помощью служебного слова file:

var имя: file;

 

Например:

Type

Massiv = array [1..25] of real;

ff = file of real;

Var

a: text;

b: ff;

c: file of integer;

d: file of massiv;

{ В файле d элементом является массив из 25 вещественных чисел}

 

Обработка типизированных файлов.

Любой программе доступны два предварительно объявленных файла со стандартными файловыми переменными:

INPUT - для чтения данных с клавиатуры;

OUTPUT - для вывода на экран дисплея;

Любые другие файлы, а также логические устройства становятся доступны программе только после выполнения процедуры связывания файловой переменной с именем существующего или создаваемого файла и открытия его для чтения или записи.

Ниже рассмотрены процедуры и функции, которые используются для работы с типизированными файлами.

Процедура assign.

Для начала работы с файлами необходимо связать файловую переменную в программе с файлом на диске. Для этого используется процедура assign (f, s), где f – имя файловой переменной, а s – полное имя файла на диске (файл должен находиться в текущем каталоге при условии, что к нему специально не указывается путь).

Например,

Var

f: file of real;

Begin

assign (f, ‘ d: \ tp\ tmp\ abc.dat’);

 

 

Процедуры reset, rewrite.

В Паскале в случае использования типизированных файлов можно открыть файл для чтения и записи одновременно.

После установления связи между файловой переменной и именем файла на диске нужно открыть файл, воспользовавшись процедурами reset или rewrite.

Когда будет выполнена процедура reset(f), где f -имя файловой перемен­ной, файл будет открыт для чтения и станет доступен его первый элемент. В результате этой процедуры специальная переменная - указатель, связанная с этим файлом, будет указывать на начало файла, т.е. на компонент с порядковым номером 0. Если в процессе выполнения программы делается попытка открыть для чтения не существующий файл, то возникает ошибка, которая может быть проанализирована с помощью встроенной функции IOREZULT типа Word. В случае отсутствия файла, открываемого для чтения значение этой функции не равно 0.

Да­лее можно выполнять чтение и запись информации из файла. Под чтением файла понимается ввод данных из внешнего файла, находящегося на диске, в оперативную память машины. Данные внеш­него файла становятся доступными программе.

Файл можно открыть для записи и очистить при помощи процедуры rewrite (f), где f -имя файловой переменной. Она открывает и очищает файл (то есть удаляет из него информацию), после чего его можно использовать для записи. Под записью файла понимается вывод результатов программы из оперативной памяти ЭВМ на диск, т. е. создание нового файла на внеш­нем устройстве.

 

Процедура close.

Процедура close(f), где f - имя файловой переменной, закрывает файл, который ранее был открыт процедурами reset, rewrite. Именно ее следует использовать при закрытии файла, в который была записана информация. Дело в том, что writе не обращается непосредственно к диску, а пишет информацию в специальный участок памяти, называемый буфером файла. После того как буфер заполнится, вся информация из него вносится в файл. При выполнении операции close сначала происходит запись буфера файла на диск, и только потом файл закрывается. Если его не закрыть вручную, то это произойдет автоматически при завершении работы программы, однако пропадет информация, хранимая в буфере файла.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: