D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Editor / Использование строчного редактора Editor

Использование строчного редактора Editor

Редактор Editor - это одно из исходных средств системы D3, предназначенное для добавления, изменения и удаления записей в файлах.

Это строковый редактор, который предоставляет набор команд, устанавливающих указатель текущей строки (line pointer) на определенные атрибуты (строки) в редактируемой записи.

Так в системе D3 все расcматривается как запись файла, "Редактор" может обрабатывать любую запись в любом файле за исключением случаев, когда запись блокирована от обновления или выборки ("retrieval lock" или "update lock").

Каждый атрибут редактируемой записи рассматривается как отдельная строка. Слева от атрибута указывается его номер (номер строки).

Вызов Editor

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

ed file.reference itemlist* {(options)}
edit file.reference itemlist* {(options)}

Опции:

a Включает функцию ассемблерного форматирования (assembly formatter). Эта опция эквивалентна команде "as" редактора.
d Позволяет редактировать "d-указатель".
m Включает функцию макрорасширения. Эта опция эквивалентна команде "m" редактора.
p Направляет вывод на системный принтер через спулер.
s Подавляет вывод номеров строк в нормальном режиме редактора, или вывод объектного кода, если включено ассемблерное форматирование. Эта опция эквивалентна команде "s" редактора.
z Подавляет сообщения "top" и "eoi".

Пример:

ed dm,bp, term-type
Сообщение об ошибках

Краткое обсуждение сообщений об ошибках, связанных с работой строчного редактора.

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

Cmnd? - сокращение от "command?". Означает, что была дана неправильная команда "Редактора".

Eoi n - конец записи приходится на строку "n".

L n - обозначает номер текущей строки (команда "?") или номер последней строки, которая обрабатывается командой "x" ("oops").

Not on file - нужная запись не обнаружена командой "me" ("merge").

Seqn? Sequence? - изменения должны производиться в направлении сверху вниз. Ситуация корректируется с помощью команды "f" ("flip"). Следует отметить, что в случае появления этого сообщения запрошенное изменение НЕ выполняется.

String? - обычно означает, что вторая часть символьной строки в команде "replace" опущена или что синтаксис команды "merge" является неполным. Выдается также в случае появления нецифрового символа в синтаксической позиции, требующей числового значения.

Top - означает, что указатель строк установлен на атрибут 0, т.е. "начало" записи. (Если в этот момент дать команду "i"/"insert", вставка произойдет перед атрибутом 1).

Сообщения об ошибках, выдаваемые при окончании выполнения:

'id' deleted.   (error message item-id = 222)

(Запись с ключом 'id' удалена; номер сообщения об ошибке = 222)

'id' exited. (error message item-id = 220)

(Выход из записи с ключом 'id' без сохранения; номер сообщения об ошибке = 220)

'id' filed. (error message item-id = 221)

(Запись с ключом 'id' записана в файле; номер сообщения об ошибке = 221)

Примеры:

014 print customer.id
.i print
.12
012 print current.balance
.i
seqn?

Чаще всего встречается сообщение об ошибке "seqn?". Оно означает попытку внести изменения в строку, которая предшествует уже модифицированной строке. Для корректировки используется команда "f"("flip"), после чего неудавшаяся операция повторяется.