Re: "контекстно-независимые" глобальные переменные
Пользователь:
snoozamoorooed (IP-адрес скрыт)
Дата: 30, December, 2020 05:11
Добрый день.
Вы можете попробовать новую серверную часть ирбис.
Она сейчас поставляется для тестирования как расширение, то есть вам к вашему ирбису понадобится положить несколько исполняемых файлов.
В ней новый язык форматов, все что есть в ирбисе там работает и есть дополнения.
Для вашего случая подойдут обычные переменные (в стиле cisis).
Переменные бывают строковые и числовые, их по 10 штук (e0 - e9 и s0 - s9) и они видны "насквозь", то есть на любом уровне вложенности форматов и даже внутри формата при вызовах REF или unifor 6.
Также переменные не зависят от повторяющихся групп.
Примеры.
Цикл с помощью числовой переменной.
e0:=0,
while (e0 < 10)
(
e0 := e0 + 1,
f(e0,0,0),/,
)
Более сложный пример
s0 := (':::'),
e0 := 0,
while (e0 < 20)
(
e0 := e0 + 1,
/*пропуск итераций
if e0 = 10 or e0 = 11 then continue fi,
/*выход из цикла
if e0 = 18 then exit fi,
/*конкатенация
s0 := (s0,'-',f(e0,0,0))
)
s0,/,
/*обрезание лишних символов
ltrim(s0,':-'),#,
/*переносим значение в глобальную переменную
g1 := (replace(ltrim(s0,':-'),'-',#)),
(g1,'<<<',/)
Если хотите, могу вам дать редактор форматов для изучения возможностей