Редактор системы ПУЛЬТ

Ордена трудового красного знамени Институт Точной Механики и Вычислительной Техники им. С.А.Лебедева АН СССР.

Новые возможности редактирования текстов в диалоговой системе ПУЛЬТ Москва 1987

Описывается новый редактор текстов диалоговой системы ПУЛЬТ. Приводятся отличительные черты, возможности, список приказов редактора.

При обнаружении ошибок или за консультацией обращаться по телефону:

137-43-01
Рожков С.А
Кобелев В.В.

1. Предварительные замечания

Новый редактор диалоговой системы пульт (далее в тексте просто ‘редактор’) предназначен для работы с массивами, записанными в архивах системы ПУЛЬТ в кодировке ГОСТ. Редактируемый текст располагается в ОЗУ начиная с четвертого листа (адрес 10000в) с тем, чтобы этот же текст можно было редактировать и с помощью старого редактора системы ПУЛЬТ [1].

Отличительные черты:

  • объем редактируемого текста до 24в зон;
  • полуэкранное редактирование;
  • более быстрая работа программы редактора по сравнению со старым редатором (в 1.5-2 раза при редакции и существенно быстрее при показе строк, поиске);
  • более удобный синтаксис приказов;
  • контроль длины редактируемого текста и защита от записи его в неверное место в архиве.

Все работы, связанные с каталогом архива (заведение новых массивов, исключение, упорядочение, перепись из одного массива в другой), осуществляются с помощью приказов системы ПУЛЬТ.

Ниже приводится краткое руководство по работе с редактором.

2. Вызов редактора

После настройки на архив (приказ ‘арх’ системы ПУЛЬТ) вызовите редактор приказом:

РЕД <имя массива>

В ответ будет получено приглашение в виде символа ‘+’, после чего можно набирать приказы редактора. Если в ОЗУ уже имеется какой-либо текст, то его можно редактировать по приказу:

РЕД пам

Текст на экран выдается в виде:

0001 <строка 1>
. . . . . .
NNNN <строка N>

где <строка> может быть и пустой, то есть состоять только из символа <конец строки=""> или <конец текста=""> (символ 172в).

3. Описание приказов

в редакторе реализовано несколько разновидностей семантически эквивалентных друг другу приказов, но с разным синтаксисом. Таким образом каждый пользователь может выбирать наиболее удобный ему синтаксис приказов. Описание приказов будет даваться в примерах, при этом каждое действие, вызываемое каким-то приказом, будет описываться разным синтакисом.

Замечание. Если приказ начинается с буквы, то после имени приказа можно набирать любое число пробелов, а диапазон строк задается в одном из следующих видов:

<N1>:<N2> или

<N1> : <N2> или

<N1> <N2> Если приказ начинается с цифры (неявный приказ), то диапазон строк задается только в виде <N1>:<N2>.

3.1 Показ строк (приказ ‘список’)

а) Показ одной строки:

С12  или  С 12  или  12

показ строки с номером 12 (нули слева можно опускать)

б) Показ группы строк:

С16:24
С16 24
16:24

Если второй номер в диапазоне больше номера последней строки, то выдача будет производиться до символа <конец текста="">.

в) Показ с данной строки и до конца текста:

С130:   или   С 130:   или   130:

г) Показ всего текста:

С    или   1:

Замечание. Если число выдаваемых строк больше 14, то после четырнадцатой строки выдача будет прекращена и вы получите приглашение в виде символа ‘<вопросительный знак="">. После этого или можно набирать какой либо приказ, или пустой посылкой продолжить выдачу строк.

3.2 Замена содержимого строк (неявный приказ)

а) Одна строка:

0135 <строка>

б) Групповая замена:

135:144 <строка>

вместо строк со 135 по 144 подставится <строка>, которая получит номер 135.

в) Подстановка строк:

56=198

Вместо строки 56 подставится строка 198

56=198:205  или  56=198 205

Вместо строки 56 подставятся строки со 198 по 205

56:62=3:110
56:62=5
563:=45:67

В последнем случае строки с 563 и до конца заменятся на текст строк с 45 по 67..

Замечание 1. При подстановке группы строк производится контроль длины вставки и контроль длины текста. Максимальный объем вставки - три зоны (102463 символов). Если объем вставки превышает допустимый, то вставляемый текст обрубается и выдается диагностическое сообщение. Если общий объем текста вышел за пределы объявленного в архиве массива, то также будет выдано диагностическое сообщение, но текст при этом будет соответствовать последней редакции, то есть работу с ним можно продолжать (см. приказ ‘запись’ раздел 3.8). Однако в случае превышения объема в 24в листа, текст обрубается (происходит потеря текста).

Неявный приказ редактора позволяет довольно легко и удобно осуществлять полуэкранное редактирование. Редакция строк производится в режиме ‘оff-linе’, а затем текст с экрана посылается в машину (клавиша на Vidеотоn-е или аналогичные клавиши на других терминалах). В конце посылки должен обязательно присутствовать символ конца сообщения (клавиша <ЕТХ> или одновременное нажатие клавиш <СТRL> или <УПР> и <Ц/С> - код 377в). Номера посылаемых строк могут идти не подряд, но обязательно в возрастающем порядке.

Замечание 2. При показе одной строки или диапазона строк символ конца сообщения подставляется автоматитически.

3.3 Поиск по образцу (приказ ‘найди’)

Образец есть строка символов, вхождение которой ищется по всему тексту (в образец может входить и символ <конец строки="">).

Часть символов в образце может быть заменена универсальным символом (по умолчанию это ‘$’ <доллар>). Универсальный символ сопоставим с любым символом текста (см. приказ 'унисим' в разделе 4).

Кроме того в образце может присутствовать символ <разделитель> (по умолчанию это символ <двойная кавычка="">), который делит образец на левую и правую части. Между левой и правой частью образца в тексте может находиться сколько угодно символов, в частности ни одного (см. приказ 'разделитель' в разделе 4).

Дополнения к приказу ‘найди’: ‘В’ и ‘К’.

  • ‘В’ - поиск всех вхождений образца и показ строк, содержащих образец.
  • ‘К’ - подсчет количества вхождений без показа.

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

Искомый образец заключается в ограничители, где ограничитель - это символ, не входящий в образец и не буква, не цифра, не ‘=’, не ‘:’ и не <пробел>.

Примеры:

а) Н/рrоgrам/
   Н/рrоgrам
   /рrоgrам/
   /рrоgrам

Поиск первого вхождения образца ‘рrоgrам’ с начала текста.

б) Н 120-не цифра-В
   120-не цифра-В

Поиск всех вхождений образца ‘не цифра’, начиная со 120 строки.

в) Н 5:35%уни'сим%К
   Н 5 35%уни'сим%К
   5:35%уни'сим%К

Подсчет количества вхождений образца /уни’сим/ в диапазоне строк с 5 по 35.

3.4 Замена образца (приказ ‘подстановка’)

Дополнением к приказу ‘найди’ служит приказ ‘подстановка’, который заменяет найденный образец на строку замены (в частности на нулевую). Образец задается по правилам, описанным в приказе ‘найди’.

Примеры:

а) П/кума/кура/
   П/кума/кура
   /кума/кура/

Поиск первого вхождения образца ‘кума’ и замена его на строку ‘кура’.

б) П 27/число/цифра/2
   27/число/цифра/2

Поиск второго вхождения образца ‘число’ в строке 27 и замена его на ‘цифра’.

в) П 5:12-бом-том-3:2
   5:12-бом-том-3:2

В диапазоне строк с 5 по 12 заменяются два вхождение образца ‘бом’, начиная с третьего, на ‘том’.

г) П 100+шапка++
   П 100+шапка+
   П 100+шапка
   100+шапка++

Исключение в строке 100 образца ‘шапка’ (замена на пустую строку).

д) П 77:/моль/роль/В
   77:/моль/роль/В

замена всех вхождений образца ‘моль’, начиная со строки 77 и до конца.

3.5 Исключение строк (приказ ‘исключи’)

а) Исключение одной строки:

И123   или   И 123

б) Исключение группы строк:

И 12:34    или   И 12 34

Если последий номер в диапазоне больше номера последней строки, то исключение производится до символа <конец текста="">.

в) Исключение с какой-либо строки и до конца:

И 200:

г) Исключение всего текста:

И    или   И 1:9999   или   И 1:

Приказ удобен при заведении новых массивов.

3.6 Объединение строк (приказ ‘объедини’)

Приказ ‘объедини’ служит для объединения диапазона строк в одну (символ <конец строки=""> исключается).

а) О 23:26

Строки с 23 по 26 объединятся в одну, которая получит номер 23.

б) О 34

Строка с номером 34 объединится со строкой 35 и получит номер 34.

3.7 Вставка новых строк (приказ ‘вставка’)

а) В 35 <строка>

Перед строкой 35 будет вставлена <строка>, которая получит номер 35, при этом номера последующих строк сдвинутся.

б) В 56

Будет открыт прием текста. В качестве приглашения к набору будет выдаваться номер, который присвоится вводимой строке. Для выхода из режима вставки дайте на очередное приглашение пустую посылку. Если необходимо вставить пустую строку (то есть строку, состоящую только из символа <конец строки="">), нужно нажать клавиши <пробел> и <конец сообщения="">. При такой посылке символ пробела в текст заноситься не будет.

в) В

Вставка в конец текста с приглашением.

г) В 5=27:45

Перед строкой 5 вставится текст строк с 27 по 45, при этом, если вставка большая, то возможна потеря вставляемого текста (см. раздел 3.2, замечание 1).

д) В=2:5

Вставка строк со 2 по 5 в конец текста.

3.8 Запись и чтение массива (приказы ‘запись’ и ‘чтение’)

а) По приказу ‘запись’ производится запись массива из ОЗУ на внешний носитель, при этом, если уже известна длина текста, записывается реальное число зон. После записи текста выдается сообщение, в котором указываются имя массива, куда была произведена запись, число записанных зон, направление и зона расположения массива на носителе, число отведенных зон в архиве.

При записи производится конроль длины текста. Если его длина больше отведенного места в архиве, то запись производиться не будет и выдастся диагностическое сообщение. В этом случае либо необходимо уменьшить длину текста, либо выйти из редактора и записать текст, который сохраняется в ОЗУ, в архив приказом ‘запись’ системы ПУЛЬТ.

Форма обращения:

З

Замечание. Если редактор вызван приказом ‘РЕД ПАМ’ (см. раздел 2), то по приказу ‘запись’ текст пишется на барабан 27в с нулевой зоны (массив ‘БУФ’ системы пульт)..

б) По приказу ‘чтение’ происходит считывание текста с внешнего носителя в ОЗУ. При этом сообщается направление и зона расположения текста на носителе, а также число зон, занимаемое массивом в архиве.

Форма обращения:

Ч

3.9 Окончание редакции (приказы ‘конец’ и ‘z’)

По приказу ‘конец’ происходит выход из редактора в систему ПУЛЬТ. Приказ ‘Z’ является объединением приказов ‘запись’ и ‘конец’.

Форма обращения:

К
Z

В обоих случаях отредактированный текст остается в ОЗУ.

3.10 Сервисные приказы

а) Приказ ‘текст’ служит для определения длины текста, которая выдается в виде: <ЗЗ.СССС>, где <ЗЗ> - целое число зон (восьмеричное), а <СССС> - число занятых слов в следующей зоне (также восьмеричное). Форма обращения:

Т

б) Приказ ‘унисим’ служит для замены универсального символа (см. раздел 3.3). Форма обращения:

У <символ>

Если приказ подан без параметра, то показывается текущее значение универсального символа.

в) Приказ ‘разделитель’ аналогичен приказу ‘унисим’, но служит для замены символа разделителя. Форма обращения:

Р <символ>

г) Приказ ‘формат’ подобен аналогичному приказу системы ПУЛЬТ, но меняет только символ конца строки. По умолчанию берется текущее значение конца строки из системы ПУЛЬТ. Форма обращения:

Ф <символ>
Ф <число>

Где <число> есть восьмеричный код символа <конец строки="">.

Если приказ подан без параметра, то показывается текущее значение формата в виде: <код символа="">. Если коду соответствует какой-либо символ, то дополнительно выдается: ```( <символ> )```.

Замечание. Приказ ‘формат’ действует только в текущем вызове редактора и не меняет значение формата в системе ПУЛЬТ.

д) Приказ ‘ацпу’ служит для распечатки текста на АЦПУ, при этом, если в задаче ранее был установлен режим ‘инкогнито’, то он отменяется.

Форма обращения:

А          - весь текст
А 125:340  - диапазон
А 125 340  - диапазон
А 35:      - с 35 и дальше
А 12       - одна строка

е) Если подана пустая посылка, то выдается общее число строк в тексте.

Литература

  1. Брябрин В.М., Еселев Г.И., Пирин С.И., Сафонов В.М., Селюн М.И., Серебряков В.А., Сметаниен В.Л., Филиппов В.И., Юфа В.М. - Система ПУЛЬТ-78. Руководство к пользованию. - М.: ВЦ АН СССР, 1978, 100 с.

Приложение

Перечень приказов редактора

Буква Команда Описание Раздел
С ‘список’ показ строк 3.1
неявный приказ замена содержимого строк 3.2
Н ‘найди’ поиск по образцу 3.3
П ‘подстановка’ замена образца 3.4
И ‘исключи’ исключение строк 3.5
О ‘объедини’ объединение строк 3.6
В ‘вставка’ вставка строк 3.7
З ‘запись’ запись массива 3.8
Ч ‘чтение’ чтение массива 3.8
К ‘конец’ окончание редакции 3.9
Z   запись и окончание 3.9
Т ‘текст’ определение длины текста 3.10
Ф ‘формат’ задание символа конец строки 3.10
У ‘унисим’ задание униврсального символа 3.10
Р ‘разделитель’ задание символа разделителя 3.10
А ‘ацпу’ печать текста 3.10

-=<>=- Сформировано 19.01.87 -=<>=-