A | B | C | D | E | F | G | I | J | K | L | M | P | Q | R | S | T | U | V | W | X | Z
+1 | +1a | +1G | +1I | +1K | +1M | +1O | +1R | +1S | +1T | +1V | +1W | +3E | +3D | +4 | +5 | +6 | +7 | +7R | +7W | +7U | +7M | +7S | +7A | +7G | +7T | +8 | +90 | +91 | +92 | +93 | +94 | +95 | +96 | +97 | +99
Режим | Описание | Входная строка | Версии | Пример |
! | Команда постредактуры: очистить результат расформатирования от двойных разделителей (двойных точек например). Имеет смысл использовать один раз в любом месте формата | ! | 4.1 и выше | &unifor(‘!’) |
+1 | Очистить (опустошить) все глобальные переменные | +1 | 4.1 и выше | &unifor('+1') |
+1A | Сложение списков (групп переменных) | +1ANNN,nnn#MMM,mmm | 4.2 и выше | нет |
+1G | Исключение неоригинальных значений из группы переменных | +1GNNN,nnn | 4.2 и выше | нет |
+1I | Исключение неоригинальных значений из списка | +1ISSSS | 4.2 и выше | нет |
+1K | Групповая мультираскодировка переменных | +1K<MNU>|NNN,nnn где: NNN – номер первой или единственной переменной,; nnn – кол-во переменных (по умолчанию 1) | 4.2 и выше | &unifor(‘+1Kmhr.mnu|100,10’) |
+1M | Перемножение двух списков (групп переменных) | +1MNNN,nnn#MMM,mmm | 4.2 и выше | нет |
+1O | Групповая мультираскодировка списка | +1O<MNU>|SSSS где: <MNU> имя справочника (с расширением); SSSS – список строк (результат расформатирования | 4.2 и выше | &unifor(‘+1Omhr.mnu|’, (v910^m/)) |
+1R | Чтение глобальных переменных | +1RNNN,nnn где: NNN – номер первой или единственной переменной, возможна конструкция *±<число> * – номер текущего повторения в повторяющейся группе; nnn – кол-во переменных (по умолчанию 1) | 4.1 и выше | &unifor(‘+1R100,2’) |
+1S | Вычитание списков (групп переменных) | +1SNNN,nnn#MMM,mmm | 4.2 и выше | нет |
+1T | Сортировка группы переменных | +1TNNN,nnn | 4.2 и выше | нет |
+1V | Сортировка списка | +1VSSSS | 4.2 и выше | нет |
+1W | Запись глобальных переменных | +1WNNN,MMM#SSSS где: NNN – номер первой или единственной переменной, возможна конструкция *±<число> * – номер текущего повторения в повторяющейся группе; MMM – номер переменной для сохранения кол-ва записанных переменных (по умолчанию не используется); SSSS – список строк (результат расформатирования). Если задан MMM – каждая строка пишется в отдельную переменную, в противном случае все пишется в одну переменную | 4.1 и выше | &unifor(‘+1W100,0#’, (v910/)) |
+3D | Декодирование данных из URL | +3D<данные> | 5.2 и выше | нет |
+3E | Кодирование данных для представления в URL | +3E<данные> | 5.2 и выше | &unifor(‘+3E’,v1007) |
+4 | Выдача метки, порядкового номера и значения поля в соответствии с индексом (номером повторения) повторяющейся группы | +4XY где Х принимает три значения: T – выдать метку; F – выдать значение поле; N – выдать порядковый номер поля в записи (отличается от индекса повторения, если Y принимает значение 1); Y принимает значения: 0 – поля выдаются в порядке расположения в записи; 1 – поля выдаются в порядке возрастания меток (по умолчанию 0) | 5.2 и выше | ...(...&unifor(‘+4T1’), ’_’, &unifor(‘+4N1’), ’: ‘, &unifor(‘+4F1’), ’<br>’...)... |
+5 | Выдача элемента списка/справочника в соответствии с индексом (номером повторения) повторяющейся группы | +5Х<имя_справочника/списка> где Х принимает значения: Т – выдать значение; F – выдать пояснение (имеет смысл, если задается справочник, т.е. файл с расширением MNU) | 5.2 и выше | ...(...&unifor(‘+5Tfield.mnu’), ’ – ’, &unifor(‘+5Ffield.mnu’), ’<br>’...) |
+6 | Выдать статус записи. Если запись логически удаленная, возвращается 0, в противном случае – 1 | +6 | 5.2 и выше | ...if &unifor(‘+6’)=’0’ then ‘запись логически удаленная’ fi... |
+7 | Очистить (опустошить) все глобальные переменные | +7 | 5.2 и выше | &unifor('+7') |
+7A | Логическое сложение повторений двух переменных | +7ANNN#MMM Результат сложения записывается в первую переменную | 5.2 и выше | нет |
+7G | Исключение неоригинальных повторений переменной | +7GNNN Результат исключения записывается в ту же переменную | 5.2 и выше | нет |
+7M | Логическое перемножение повторений двух переменных | +7MNNN#MMM Результат перемножения записывается в первую переменную | 5.2 и выше | нет |
+7R | Чтение глобальной переменной | +7RNNN,nnn где: NNN – номер переменной nnn – номер повторения (по умолчанию – номер текущего повторения в повторяющейся группе;) Эквивалентная конструкция языка форматирования GNNN | 5.2 и выше | (...&unifor(‘+7R100’)...) Эквивалентная конструкция языка форматирования: (...G100...) |
+7S | Логическое вычитание повторений двух переменных | +7SNNN#MMM Результат вычитания записывается в первую переменную | 5.2 и выше | нет |
+7T | Сортировка повторений переменной | +7TNNN Результат сортировки записывается в ту же переменную | 5.2 и выше | нет |
+7U | Добавление повторений глобальной переменной | +7UNNN#SSSS где: NNN – номер переменной SSSS – список строк (результат расформатирования); каждая строка становится отдельным повторением | 5.2 и выше | нет |
+7W | Запись глобальной переменной | +7WNNN#SSSS где: NNN – номер переменной SSSS – список строк (результат расформатирования); каждая строка становится отдельным повторением | 5.2 и выше | &unifor(‘+7W100#’,(v910/)) |
+8 | Вызов функций из внешних DLL.
(в ИРБИС64 данные передаются и возвращаются в UTF8) | +8<dll>,<функция>,<данные> | 6.1 и выше | - &unifor('+8test_dll, test_function1, ',v200^a) – (&unifor('+8test_dll, test_function2, ',v910)) – (&unifor('+8test_dll, test_function2, ',&unifor('+0'))) |
+90 | вернуть номер текущего повторения в повторяющейся группе | +90<исх.данные> | 6.1 и выше | нет |
+91 | вернуть имя файла из полного пути/имени, включая расширения | +91<исх.данные> | 6.1 и выше | &uf('91'v951^a) |
+92 | вернуть путь из полного пути/имени без конечного слэша | +92<исх.данные> | 6.1 и выше | &uf('92'v951^a) |
+93 | вернуть расширение из полного пути/имени с предшествующей точкой | +93<исх.данные> | 6.1 и выше | &uf('93'v951^a) |
+94 | вернуть букву диска из полного пути/имени с двоеточием | +94<исх.данные> | 6.1 и выше | &uf('94'v951^a) |
+95 | вернуть длину исходной строки | +95<исх.данные> | 6.1 и выше | &uf('95'v200) |
+96 | вернуть фрагмент строки | +96A*SSS.NNN#<строка> A – направление: 0 – с начала строки; 1 – с конца SSS – смещение NNN – кол-во символов | 6.1 и выше | &uf('960*4.5#'v200) |
+97 | вернуть строку в верхнем регистре | +97<исх.данные> | 6.1 и выше | &uf('97'v200) |
+99 | групповая установка глобальных переменных (для ИРБИС-Навигатора) | Исходная строка закодирована через URLEncode (&unifor('+3E....). После раскодировки рассматривается как список строк(TStringList.Text). Каждая строка этого списка имеет структуру: NNN#<значение_ГП_NNN> | 6.1 и выше | нет |
+F | команда постредактуры: очистить результат расформатирования от RTF-конструкций. Имеет смысл использовать один раз в любом месте формата | +F | 4.1 и выше | &unifor('+F') |
+I | команда формирования ссылки (гиперссылки) | +I /<содержание ссылки>/<название ссылки> /<содержание ссылки>/ – внутренние данные ссылки, ограниченные уникальным разделителем. Имеют следующую структуру: * NNN, HHH, <параметры> * NNN - тип ссылки, возможные значения: * 0 - ссылки на внешние объекты * 1 - ссылка на связанный документ (возможно в другой БД) - "от одного к одному" * 2 - ссылка на связанные документы (возможно в другой БД) - "от одного к многим" * HHH - экранная подсказка, может иметь вид: * @iii - где iii - номер текста в файле IRBISMSG.TXT * \text\ - собственно текст подсказки в уникальных ограничителях. Для ссылок типа 0 <параметры> представляет собой в общем виде URL внешнего объекта (в том числе - полный путь на файл). Для ссылок типа 1 и 2 <параметры> имеют следующую структуру: * имя_БД, имя_формата, termin * имя_БД - имя базы данных, из которой будут браться связанные документы; по умолчанию, т.е. если имя БД "пустое", используется текущая БД. * имя_формата - имя формата, в соответствии с которым будут расформатироваться связанные документы. (по умолчанию - используется оптимизированный формат) * termin - ключевой термин, на основе которого отбираются (ищутся) связанные документы | 4.1 и выше | &unifor('+I?0,,', v951^i, '?', v951^t, |INTERNET|n951^t) |
0 | Выдать содержимое документа полностью (формат ALLl) | 0 | все | &unifor('0') |
1 | Вернуть заданный подэлемент | 1NCXY?V<tag> ^ <delim> * <offset> . <length> # <occur> где: N – номер повторения подэлемента; если указана * – номер подэлемента совпадает со счетчиком повторяющейся группы; ХY – разделители между подэлементами; С – принимает значения: R – разделители справа от каждого подэлемента, кроме последнего; L – разделители слева от каждого подэлемента; D – каждый подэлемент заключен слева разделителем Х и справа – Y; ? – символ-разделитель. Остальные параметры аналогичны параметрам для функции А ( см. выше ) | все | (/&unifor('1*R; ?v910^h#1')) |
3 | выдача данных, связанных с ДАТОЙ и ВРЕМЕНЕМ. Имеются следующие подфункции: 3 – выдать текущую дату в виде ГГГГММДД 30 – выдать теекущий год в виде ГГГГ 31 – выдать текущий месяц в виде ММ (с лидирующим нулем) 32 – выдать текущий день в виде ДД (с лидирующим нулем) 33 – выдать текущий год в виде ГГ 34 – выдать текущий месяц в виде М (без лидирующего нуля) 35 – выдать текущий день в виде Д (без лидирующего нуля) 36MM – выдать по заданному номеру месяца его название на русском языке в именительном падеже 37MM – выдать по заданному номеру месяца его название на русском языке в родительном падеже 38MM – выдать по заданному номеру месяца его название на английском языке 39 – выдать текущее время 3А – выдать номер текущего дня от начала года | 3<подфункция> | 4.1 и выше | &unifor('36',&unifor('34')) |
7 | реализация реляционности, т.е. реализация отношений «от одного к многим» | 7<имя_БД>, </termin/>, <@имя_формата|формат> имя_БД – имя базы данных, из которой будут браться связанные документы; по умолчанию, т.е. если имя БД «пустое», используется текущая БД. /termin/ – ключевой термин, на основе которого отбираются (ищутся) связанные документы; термин заключается в уникальные ограничители (например. /), в качестве которых используется символ, не входящий (гарантированно) в термин. @имя_формата|формат – имя формата или формат в явном виде, в соответствии с которым будут расформатироваться связанные документы. Если задается имя формата, то он берется из директории БД, заданной параметром <имя_БД>. Есть аналогичный форматный выход – &unifor('D...) – который реализует связь «от одного к одному», т.е. из связанных документов берется только первый | 4.1 и выше | &unifor('7TEST,', «/T="v200^a"/", ',v903"\par "') |
9 | Удалить двойные кавычки из заданной строки | 9<исх.строка> | все | &unifor(«9»v200^a) |
A | Выдать заданное повторение поля | AV<tag> ^ <delim> * <offset> . <length> # <occur> где: <tag> – метка поля; <delim> – разделитель подполя; <offset> – смещение; <length> – длина; <occur> – номер повторения | все | &unifor('Av910^a#5') &unifor('Av10^b*2.10#2') |
B | Выдать библиографическую свертку документа | B | все | &unifor('B') |
C | Контроль ISSN/ISBN При положительном результате – 0 При отрицательном – 1 | С<ISSN/ISBN> | все | &unifor(«C»v10^a) |
D | Форматирование документа из другой БД (REF на другую БД – отношение «от одного к одному») | D<dbn>, <@mfn|/termin/>, <@имя_формата|формат> Передаются три параметра, разделенные запятой: Первый – имя БД; Второй – или непосредственно MFN с предшествующим символом @ или термин, ссылающийся на документ (термин – заключается в ограничительные символы); Третий – или имя формата с предшествующим символом @ или непосредственно формат | все | &unifor('DBOOK, /K=AAA/, v200') |
E | Вернуть заданное количество первых слов в строке | EN<строка> где N – кол-во слов (одна цифра) | все | &unifor(«E3»v200^a) |
F | Вернуть конец строки после заданного кол-ва первых слов | FN<строка> где N – кол-во слов (одна цифра) | все | &unifor(«F3»v200^a) |
G | Вернуть часть строки до или начиная с заданного символа | GNA<строка> где: N=0 если ДО заданного символа (не включая его); N=1 если начиная С заданного символа (включая его); А – заданный символ (# – обозначает цифру; $ – обозначает букву) | все | &unifor(«G0#"v700) &unifor(«G1-»v700^a) |
I | Вернуть параметр из INI-файла | I<SECTION>, <PAR_NAME>, <DEFAULT_VALUE> | все | &unifor('IPRIVATE, NAME, NONAME') |
J | Вернуть кол-во ссылок для заданного термина | J<dbn>,<термин> <dbn> – имя БД; по умолчанию используется текущая | все | &unifor('JBOOK,', «A="v200^a) |
K | Раскодировка через справочник (меню) | K<имя_меню> \ <исх_значение> | все | &unifor("Kjz.mnu\"v101) |
L | Вернуть окончание термина | L<начало_термина> | все | &unifor(«L»v101) |
M | Отсортировать повторения заданного поля (имеется в виду строковая сортировка) – функция ничего не возвращает. Можно применять только в глобальной корректировке | MX<tag>^<delims> X – вид сортировки: I – по возрастанию; D – по убыванию. <tag> – метка поля. <delims> – разделители подполей, определяющих ключ сортировки | все | &unifor('MI910^BD') |
P | Выдать заданное оригинальное повторение поля | PV<tag> ^ <delim> * <offset> . <length> # <occur> где: <tag> – метка поля; <delim> – разделитель подполя; <offset> – смещение; <length> – длина; <occur> – номер повторения | все | &unifor('Pv910^a#5') &unifor('Pv10^b*2.10#2') |
Q | Вернуть заданную строку в нижнем регистре | Q<строка> | все | &unifor(«Q»v200) |
R | Генерация случайного числа | RNN где: NN- кол-во знаков в случайном числе (по умолчанию – 6) | все | &unifor('R10') |
S | Универсальный счетчик | SN где: N=0 – обнулить счетчик; N=1..9 – увеличить значение счетчика на соотв. значение} N=A – вернуть значение счетчика – арабскими цифрами} N=X – вернуть значение счетчика – римскими цифрами | все | &unifor('S0') &unifor('S1') &unifor('SA') |
T | Транслитерирование кириллических символов с помощью латиницы | TN<строка> где N – вид таблицы транслитерирования (0 или 1) | все | &unifor(«T0»V200) |
U | Куммуляция номеров журналов | U<strbase>, <stradd> где: <strbase> – исходная куммулированная строка <stradd> – куммулируемые номера | все | &unifor(«U»v909^h»,12») |
V | Декуммуляция номеров журналов | V<strbase> где: <strbase> – исходная строка для декуммуляции | все | &unifor(«V»v909^h») |
W | Контроль куммуляции | W<strbadd>, <strbase> где: <strbase> – исходная куммулированная строка <stradd> – куммулируемый номер. Возврат: 0 – если <stradd> не присутствует в <strbase> 1 – если <stradd> присутствует в <strbase> | все | &unifor(«W12,"v909^h) |
X | Удаление из заданной строки фрагментов, выделенных угловыми скобками <> | X<строка> | все | &unifor(«X»v200) |
Z | Размножение экземпляров (функция ничего не возвращает). Можно применять только в глобальной корректировке | Z | все | &unifor('Z') |