Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дал У.И.Симула 67.doc
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
216.58 Кб
Скачать

11.4.2. Семантика

О

бъект класса directfile служит для представления внеш него файла, в котором отдельные образы адресуемы К0№МИ (целыми) числами —номерами

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

Процедура open разыскивает первый образ файла. В осталь­ном она следует схеме, приведенной в разд. 11.1.2.

Процедура endfile вырабатывает значение true тогда и только тогда, когда текущее значение переменной LOC не указывает ни на какой образ внешнего файла. Процедура определяется конкретной реализацией.

Процедура inimage передает в текст image копию внеш­него образа, на который в данный момент указывает пере­менная LOC (если таковой образ имеется). Затем значение переменной LOC увеличивается на единицу процедурой lo­cate. Если файл не содержит образа с порядковым номером, равным значению LOC, то действие процедуры inimage оп­ределяется реализацией языка. В остальном эта процедура аналогична процедуре из разд. 11.2.

Процедура outimage передает копию текстового значения -переменной image на внешний файл, добавляя тем самым к файлу еще один внешний образ, порядковый номер кото­рого равен текущему значению переменной LOC. Если файл не вмещает передаваемого текстового значения в качестве внешнего образа, то выдается сообщение об ошибке. Если файл уже содержал некоторый образ с тем же самым по­рядковым номером, то такой образ уничтожается. Значение переменной LOC увеличивается на единицу процедурой lo­cate. В остальном процедура outimage аналогична процедуре из разд. 11.3.

Другие процедуры класса directfile аналогичны соответ­ствующим процедурам из разд. 11.2. и 11.3,

11.5. класс prlntfile

'

11.5.2. Семантика

Объект класса printfile служит для представления выход­ного файла, реализуемого печатающим устройством. Класс printfi e является подклассом класса outfile. Переменная image в объекте класса printfile представляет строчку (яв­ляется образом строчки) на печатной странице.

.Переменная LINES PER PAGE указывает максимальное число физических строчек, которые могут быть напечатаны на каждой странице, включая пробельные строчки. В мо­мент порождения объекта этой переменной присваивается оп­ределяемое реализацией значение. Для изменения этого зна-' чения можно воспользоваться процедурой lines per page.

Переменная SPACING указывает количество строк, про­ пускаемых между двумя последовательными операциями вы­ дачи на печать. Переменная получает значение 1 в момент порождения объекта. Ее значение можно изменить посред­ ством процедуры spacing. (В некоторой реализации эта про­ цедура может иметь побочный эффект, состоящий в измене­ нии значения переменной LINE.) Если переменная SPACING равна 0, то последовательные образы печатаются на одном и том же физическом месте (без протяжки бумаги)., "

П

еременная LINE указывает порядковый номер строчки, подлежащей выдаче на печать, _ считая от начала текущей страницы. Значение этой переменной можцр1.11олучить

цедурой line,

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

l<n<LINE:

очередной образ будет на­ печатан на строчке номер ri ;' • " ■ . следующей страницы;

LINE < п < LINES PER PAGE:

очередной образ будет на-

- . печатан на строчке номер п

текущей страницы.

Процедура outimage работает по правилам разд. 11.3. Кроме того, она обновляет переменную LINE и заставляет ее указывать на первую строчку следующей страницы, когда-текущая страница оказывается заполненной.

Процедуры open и close следуют правилам разд. 11.1. Кроме того, процедура open устанавливает печатающее уст­ройство на начало страницы, a close выдает текущее значе­ние текста image, если pos отлична от единицы.

\2. СЛУЧАЙНЫЙ ВЫБОР

*