Пятница, 19.04.2024, 19:34
Приветствую Вас, Гость
Главная » Статьи » Мои статьи

Языки форматирования CDS/ISIS и ИРБИС
[u]Язык форматирования ISIS for DOS[/u]

3.2. Язык форматирования.
     Язык форматирования позволяет определить точные требования
по  форматированию  записей базы данных. С помощью этого языка,
можно выбрать один или более конкретных элементов данных в нуж-
ном порядке, вставить текстовые  константы  по  вашему  выбору,
например,  отметить  подзаголовками  некоторые  или все поля, а
также определить требования по горизонтальному и  вертикальному
размещению  данных. Совокупность команд по форматированию печа-
ти, описываемых в данной главе, называется  форматом.  В  общем
случае  формат  определяет подмножество полей записей базы дан-
ных, которые затем могут использоваться CDS/ISIS для выполнения
заданной функции. Хотя форматы в основном используются для спе-
цификации способа выдачи записей на экран или  принтер,  однако
они также широко используются в системе каждый раз, когда необ-
ходимо выполнить специфические операции с одним или несколькими
элементами  данных. Hапример, в таблице выбора полей формат ис-
пользуется для определения данных, к которым должна применяться
данная техника индексирования.  Язык  форматирования,  следова-
тельно,  является  ядром многих операций CDS/ISIS и эффективное
использование CDS/ISIS требует тщательного его  изучения.  Фор-
мальное  определение  языка форматирования дано в разделе 3.2 "
Язык форматирования ".
    Hекоторые форматы могут показаться очень сложными, и вы мо-
жете  предположить,  что  язык форматирования сам по себе очень
сложный. Фактически же все форматы, даже наиболее сложные, сос-
тавлены из одной или более простых команд и  выражений,  разде-
ленных  запятыми  или пробелами. Кажущаяся сложность следует из
факта, что таких команд может быть много в одном формате.  Сле-
довательно,  ключом  к пониманию формата является анализ каждой
команды в отдельности.
     Хотя все форматы составлены с использованием одного и того
же языка форматирования, они могут быть разделены на  группы  в
зависимости от предполагаемого их использования:
     Экранные  форматы используются для вывода записей на экран
или принтер (в последнем случае их называют форматами печати).
     Форматы выборки используются в ТВП для определения данных,
которые нужно индексировать.
     Обрабатывая формат, CDS/ISIS работает с  тремя  объектами:
запись базы данных, формат, рабочая область, в которой хранится
вывод,  продуцируемый  форматом. Команды выполняются последова-
тельно, в порядке, в котором они даны в формате. Hекоторые  ко-
манды продуцируют действия (такие, как переход на новую строку,
пропуск  одной  или  более  пустых строк и т.д.). Продуцируемые
данные хранятся как строки текста в  рабочей  области,  которые
затем передаются в соответствующую программу для дальнейшей об-
работки, т.е. для печати.
     Когда формат используется для выдачи данных на экран, про-
дуцируемые  строки  обычно ограничены определенной максимальной
длиной (шириной строки). Hапример,  вызывая  строки  на  экран,
CDS/ISIS автоматически ограничивает ширину строки 80 символами.
Hесмотря  на то, что командами форматирования требуется перейти
на новую строку, CDS/ISIS будет выдавать данные  последователь-
но,  стараясь заполнить каждую строку настолько, насколько воз-
можно. Если данное поле превышает длину строки, CDS/ISIS  поде-
лит  его на необходимое количество строк. Когда CDS/ISIS разби-
вает данные на строки,  точка  деления  всегда  оказывается  на
уровне слов, т.е. слово никогла не разрывается на две строки.
     Все команды формата могут вводиться большими или маленьки-
ми буквами или комбинацией больших и малых букв.
     Все  примеры по форматированию в следующих разделах ссыла-
ются на запись, приведенную на рис.6, в которой содержание  по-
лей  дано в том виде, в каком оно хранится в записи. Эта запись
взята из базы данных CDS, поставляемой ЮHЕСКО на дискетах вмес-
те с CDS/ISIS (ТОП соответствующей базы данных описана в разде-
ле 3.1 "Таблица определения полей (ТОП)").
_____________________________________________________________________

   HФД=4

   Метка                          Содержание
   -----   ----------------------------------------------------------

   24      An Electric  hydrometer  apparatus  for  measuring water-
           vapour loss from plants in the field
   26      ^aParis^bUnesco^c1965
   30      ^ap. 247-257^billus.
   44      Methodology of plant eco-physiology: proceedings of the
           Montpellier Symposium
   50      Incl. bibl.
   69      Paper on hydrometers plant transpiration moisture
           water balance
   70      Grieve, B.J.
   70      Went, F.W.

                        Рисунок 6
_____________________________________________________________________
3.2.1. Селекторы поля
     Селекторы  поля - это команды, используемые для извлечения
определенного поля или подполя из записи.  Специальная  команда
позволяет  извлечь  номер записи в файле документов (MFN), хотя
MFN не является полем. (MFN не имеет метки  и  не  определен  в
ТОП).
3.2.1.1. Команда поля
     Для извлечения поля из записи нужно закодировать букву V с
меткой  поля,  которое  вы хотите извлечь. V (мнемонический код
поля переменной длины) является командой, указывающей CDS/ISIS,
что вы хотите извлечь поле. Она может вводиться как  заглавной,
так и прописной буквой.
_____________________________________________________________________

Формат                         Выходные данные
-------    ----------------------------------------------------------

  V24      An Electric  hydrometer  apparatus  for  measuring water-
           vapour loss from plants in the field
  V26      ^aParis^bUnesco^c1965
  V30      ^ap. 247-257^billus.
  V44      Methodology of plant eco-physiology: proceedings of the
           Montpellier Symposium
                          Рисунок 7
_____________________________________________________________________
3.2.1.2. Команда подполя
     Для  извлечения конкретного подполя из данного поля просто
добавьте соответствующий разделитель подполя к метке, как пока-
зано на рис.8. Заметьте, что вы можете использовать специальный
разделитель подполя ^* для извлечения первого подполя, если оно
есть. В этом случае первому подполю необязательно должен  пред-
шествовать действительный разделитель подполя.
     Отметьте,  что  разделитель подполя можно вводить как заг-
лавной буквой, так и прописной, это безразлично.
_________________________________________________________________

Формат                               Вывод
--------    -----------------------------------------------------
V26^В       Unesco
V26^a       Paris
V30^a       p. 247-257
V44^*       Methodology of plant eco-physiology: proceedings of 
            the Montpellier Symposium
V26^*       Paris

                        Рисунок 8
________________________________________________________________
3.2.1.3. Извлечение фрагмента поля или подполя
     Вам может понадобиться, в некоторых случаях, извлечь часть
поля, которая не является подполем, особенно в  случаях,  когда
поле  имеет фиксированный формат во всей базе данных (например,
стандартизованную запись даты YY-MM-DD). Вы можете сделать  это
введением  команды смещение/длина непосредственно после команды
поля или подполя,к которому эта команда применяется. Эта коман-
да может быть введена  в  виде  *смещение.длина  или  *смещение
или длина, где:
     *смещение  указывает позицию первого символа, который дол-
               жен быть извлечен из поля или  подполя  (позиции
               символов  считаются  с  нуля, т.е. первый символ
               находится в позиции номер 0, второй - в  позиции
               1  и т.д.); если смещение опущено, CDS/ISIS счи-
               тает смещение равным 0;
       .длина указывает количество символов, которые нужно изв-
               лечь; если длина опущена, то извлекается все по-
               ле, начиная с символа, указанного в смещении.
     Некоторые примеры этой команды даны на рис.9 где предпола-
гается, что запись, взятая для примера, содержит также поле 1 в
следующем виде:

                      88-Nov-05
   _____________________________________________

         Формат                   Вывод
   --------------------     --------------------
   V1*3.3                   Nov
   V1.2                     88
   V1*7                     05
   V1*7, V1*2.4             05-Nov
   V1*7, V1*2.5, V1.2       05-Nov-88
   V26.3                    ^aP
   V26^b*2.4                esco


                      Рисунок 9
   ____________________________________________

     Отметьте, в двух последних примерах есть разница в обраще-
нии с полем, содержащим подполя: если идет ссылка на поле (т.е.
V26), то смещение ноль представляет первый действительный  сим-
вол  поля,  в  то  время как при ссылке на подполе (т.е. V26^b)
смещение ноль представляет первый символ данных после  раздели-
теля подполя.
3.2.1.4. Команда смещения
     Когда  CDS/ISIS обрабатывает команду поля или подполя, вы-
вод содержимого поля начинается с текущей позиции строки, кото-
рая зависит от последней выполненной команды. Если поле не вме-
щается в текущую строку, CDS/ISIS создает столько  дополнитель-
ных строк, сколько требуется. Обычно последующие строки начина-
ются с первой позиции. Вы можете изменить эти позиции с помощью
команды  смещения,  которая должна следовать непосредственно за
командой поля (или подполя). Команда смещения кодируется следу-
ющим образом (f,c) или (f), где:
     f - указывает количество пробелов, которые должны быть ос-
         тавлены с левого  поля  перед  форматированием  первой
         (или единственной) строки поля. Эта команда эффективна
         только  в  случае,  если  поле  форматируется с начала
         строки, в противном случае она игнорируется;
     с - указывает количество пробелов, которые должны быть ос-
         тавлены с левого поля перед форматированием всех  пос-
         ледующих  строк поля, форматируемого на более, чем од-
         ной строке.
     Значение ноль может быть назначено как для f, так и для с.
Если  нужно  использовать  только  f,  c  может  быть   опущено
(CDS/ISIS  присваивает  ноль  по умолчанию). Однако, если нужно
только c, вы должны определить и f. Hекоторые примеры приведены
на рисунке 10.
______________________________________________________________________

   Формат                               Вывод
------------     -----------------------------------------------------
 V44             Methodology of plant eco-physiology: proceedings of the
                 Montpellier Symposium
 V44(10)                   Methodology of plant eco-physiology:
                 proceedings of the Montpellier Symposium
 V44(5,9)             Methodology of plant eco-physiology: proceedings
                           of the Montpellier Symposium
 V44(0,8)        Methodology of plant eco-physiology: proceedings of the
                            Montpellier Symposium


                           Рисунок 10
______________________________________________________________________
3.2.1.5. Команда MFN
     Для извлечения номера записи в  файле  документов  введите
следующее:

           MFN или MFN(d)

где d - количество цифр, которые должны быть выведены на экран.
Если (d) опущено, по умолчанию выводится 6 цифр. См. рисунок 11.
   _______________________________

      Формат              Вывод
   -------------       -----------
    MFN                000004
    MFN (3)            004
    MFN (2)            04
    MFN (1)            4

            Рисунок 11
   _______________________________

     Oтметьте, что вы можете использовать F функцию (см. раздел
3.3.2.1 " F(expr-1, expr-2, expr-3)" ) для  подавления  ведущих
нулей.
3.2.2. Команда режима
     CDS/ISIS может выводить данные на экран в  трех  различных
режимах:
     режим проверки: в этом режиме поля выводятся на экран точ-
но  в  том  виде,  как  они  хранятся  в  записи. Отметьте, что
CDS/ISIS не вносит никаких разделителей между полями или экзем-
плярами повторяющегося поля. Следовательно, это забота  пользо-
вателя  обеспечить адекватное разделение полей с помощью команд
размещения, литералов или повторяющихся групп (см.разделы  3.2.
3.  ,  3.2.4 , 3.3.5, " Команды вертикального и горизонтального
размещения " , " Литералы ", и " Повторяющиеся группы " ). вер-
тикального и горизонтального размещения" , "Литералы" и "Повто-
ряющиеся группы ). Этот режим обычно используется  для  вывода
на экран записей в проверочных целях;
     режим  заголовка: этот режим обычно используется для заго-
ловков при печати каталогов и индексов. Все управляющие  симво-
лы,  введенные  в  данные, такие как средства изменения порядка
сортировки (см.раздел 8.3.13 " Сортировка " ) и  ог  раничители
дескрипторов  (  и  ) игнорируются (за исключением указанного
ниже), в то время как разделители подполей заменяются  пунктуа-
цией (см.ниже).
     режим данных: этот режим похож  на  режим  заголовка,  но,
вдобавок,после  каждого  поля автоматически ставится точка (.),
за которой следуют два пробела (или просто  два  пробела,  если
поле оканчивается каким-либо знаком пуктуации). Отметьте, одна-
ко,  что эта автоматическая пунктуация подавляется, если за се-
лектором поля следует суффикс-литерал (см.раздел 3.2.4 "  Лите-
ралы ").
     Когда CDS/ISIS форматирует поле, содержащее подполе, в ре-
жимах заголовка или данных, он автоматически заменяет введенные
разделители подполей знаком пунктуации (первый разделитель под-
поля, если есть, всегда игнорируется). Далее, специальная  ком-
бинация  символов >< заменяется на ';', обеспечивая таким обра-
зом простой способ форматирования  полей,  содержащих  перечень
ключевых фраз, заключенных в угловые скобки (и сохраняя нажатие
клавиши  во время ввода данных). Таблица стандартного замещения
разделителей подполей выглядит так:

              ^a         замещается на ';'
              ^b до ^i   замещается на ','
              все другие замещаются на '.'

     Команда режима кодируется Mmc,
     где:
           m  определяет режим следующим образом:
              Р - режим проверки
              H - режим заголовка
              D - режим данных
     с  определяет способ написания следующим образом:
              U - данные конвертируются в заглавные буквы
              L - данные не изменяются
     Команда режима может появляться  в  формате  столько  раз,
сколько  необходимо,  каждая команда действует до тех пор, пока
не  появляется  следующая.  Если  команда  режима  отсутствует,
CDS/ISIS использует по умолчанию MPL (режим проверки, данные не
конвертируются  в заглавные буквы). Примеры команды режима даны
на рис.12.
______________________________________________________________________

 Формат                                Вывод
----------      ------------------------------------------------------
  
mpl,v24     An Electric  hydrometer  apparatus  for  measuring water-
            vapour loss from plants in the field
mhl,v24     An Electric  hydrometer  apparatus  for  measuring water-
            vapour loss from plants in the field
mdl,v24     An Electric  hydrometer  apparatus  for  measuring water-
            vapour loss from plants in the field.
mdu,v24     AN  ELECTRIC  HYDROMETER  APPARATUS  FOR  MEASURING WATER-
            VAPOUR LOSS FROM PLANTS IN THE FIELD.
mpl,v26     ^aParis^bUnesco^c1965
mhl,v26     Paris, Unesco, 1965
mdu,v26     PARIS, UNESCO, 1965.
mpl,v69     Paper on: 
            
mdl,v69     Paper   on:   hydrometers;   plant  transpiration; moisture;
            water balance.
   

                                 Рисунок 12
______________________________________________________________________
3.2.3. Команды горизонтального и вертикального размещения
     Язык форматирования обеспечивает пять команд для  управле-
ния горизонтальным и вертикальным размещением. Они приведены на
рис.13.
____________________________________________________________________

 Команда                           Функция
---------    -------------------------------------------------------
  Xn         Вносит n пробелов перед форматированием следующего поля
  Cn         Устанавливает позицию строки n
  /          Переход на новую строку (если предыдущая строка не была
             пустой)
  #          Переход на новую строку (безусловный)
  %          Удаляет ранее созданные пустые строки (если они есть)

                             Рисунок 13
____________________________________________________________________

     Команда Xn вносит n пробелов перед форматированием следую-
щих  данных.  Однако,  если  на текущей строке осталось менее n
свободных позиций, CDS/ISIS просто переходит на  новую  строку.
Так,  например, если следующая свободная позиция текущей строки
- 77, а ширина строки определена 80, то выполнение  команды  Х7
приведет к размещению следующих данных с начала следующей стро-
ки (а не с третьей позиции следующей строки).
     Команда  Сn  указывает, что следующие данные должны разме-
щаться, начиная с n-й позиции следующей  строки.  Это  средство
позволяет  осуществлять  вывод  по колонкам. Если n оказывается
больше ширины строки, команда игнорируется.
     Команда / сходна с возвратом каретки на  пишущей  машинке,
т.е. она переводит на новую строку и, следовательно, приводит к
размещению  данных с начала следующей строки. Однако, в отличие
от возврата каретки, многократно подряд  расположенные  команды
/,  хотя  и  являются  синтаксически  правильными, имеют тот же
смысл, что и одна команда /, т.е. / никогда не производит  пус-
тых строк. Для этой цели предусмотрена команда #. Она выполняет
ту же функцию, что и /, но переход на новую строку является бе-
зусловным. Так, вы можете использовать комбинацию /# для созда-
ния  одной (и только одной) пустой строки (отметьте, что комби-
нация ## может привести к пропуску одной или двух пустых  строк
в  зависимости  от того, была ли пустой строка, форматированная
перед выполнением первой команды #).
     Использование команды # может вызвать  затруднение  в  тех
случаях, когда выбираемое поле оказывается пустым. Эта ситуация
хорошо иллюстрируется на следующем примере:

                   /#V10/#V20/#V30 ...

     Если  все поля присутствуют в записи, то в результате поля
10, 20, и 30 будут располагаться с начала строк и каждому будет
предшествовать одна пустая строка. Однако, если поле 20 отсутс-
твует, то между 10 и 30 полями будет пропущено две пустые стро-
ки. Это может быть нежелательно если  действительно  требуется,
чтобы между полями была пропущена именно одна пустая строка не-
зависимо  от наличия или отсутствия некоторых полей, тогда при-
веденная выше спецификация не приведет к желаемому результату.
     Эту проблему решает команда %. Ее действие  заключается  в
подавлении  всех  последовательных пустых строк (если они есть)
между текущей строкой и последней непустой строкой.
     Так, следующий формат:

                   %##V10%##V20%##V30 ...

приведет к пропуску одной и только одной  строки  между  каждым
полем,  даже если некоторые из них отсутствуют в записи. Допол-
нительные примеры этих команд даны на рис.14.
___________________________________________________________________

       Формат                                Вывод
---------------------     ----------------------------------------
v26^b,x3,v26^a            Unesco   Paris
v26^b/v26^a               Unesco
                          Paris
v26^b/#v26^a              Unesco

                          Paris
v26^b,c20,v26^a           Unesco              Paris
v26^b,####%v26^a          Unesco
                          Paris
mdl,v26,v30               Paris, Unesco, 1965. p. 247-257, illus.
mdl,v26/v30               Paris, Unesco, 1965.
                          p. 247-257, illus.


                             Рисунок 14
____________________________________________________________________
3.2.4. Литералы
     Литерал - это строка символов, заключенная между соответс-
твующими разделителями, которая вносится в  выводимый  текст  в
таком  виде,  как она приведена. Литералы могут использоваться,
например, как подзаголовки полей.
     Литералы существуют трех типов:
     яусловные литералы : определяют текст, который будет выве-
ден только если соответствующее поле присутствует в записи. Ес-
ли команда выбора соответствующего поля - это  команда  подполя
(т.е.  v24^a), то текст будет выведен только тогда, когда соот-
ветствующее подполе присутствует в записи. Если команда  выбора
поля  определяет  повторяющееся  поле,  то  текст будет выведен
только один раз, независимо от количества повторений поля.  Ус-
ловные  литералы  заключаются  в двойные кавычки ("), " например,
"Заголовок: ".
     повторяющиеся литералы : как и условные литералы, они  оп-
ределяют текст, который должен быть выведен только тогда, когда
соответствующее поле или подполе присутствует в записи. Однако,
если  поле  повторяющееся, литерал будет распечатан для каждого
повторения поля. Повторяющиеся литералы  заключаются  в  верти-
кальные черты (|), например |Автор: |.
     безусловные литералы : определяют текст, который будет вы-
веден независимо от наличия полей. Безусловные литералы  заклю-
чаются  в одинарные кавычки ('), например 'Краткое содержание'.
Поскольку безусловные  литералы  всегда  выводятся  как  единый
фрагмент текста (т.е. безусловные литералы не могут разбиваться
на две строки), их длина не может превышать ширину строки, ина-
че  они будут обрезаны. Чтобы вывести текст, превышающий ширину
строки, нужно разбить его на два  или  более  литералов.  Можно
также обеспечить любое требуемое смещение с помощью команды Сn.
     Литерал  не  должен содержать разделитель литерала, напри-
мер, безусловный литерал не может содержать  одинарную  кавычку
(хотя  может  содержать двойные кавычки и/или вертикальную чер-
ту).
     Условные и/или повторяющиеся литералы ассоциируются с  по-
лем  или  подполем своим размещением в формате: литералы, пред-
шествующие селектору поля (называемые  также  префикс-литерала-
ми),  будут выведены перед содержимым поля, в то время, как ли-
тералы, следующие за селектором  поля  (называемые  также  суф-
фикс-литералами), будут выведены после содержимого поля.
     Если  за  повторяющимся  префикс-литералом непосредственно
следует знак
'+' (например, |xxx|+), он будет выведен  перед  каждым,  кроме
первого, повторением поля.
     Если повторяющемуся суффикс-литералу непосредственно пред-
шествует знак
'+'  (например,  +|xxx|), он будет выведен после каждого, кроме
последнего, повторения поля.
     Повторяющиеся префикс-литералы и все суффикс-литералы фор-
матируются так, как будто они физически являются частью  содер-
жимого ассоциируемых полей и, следовательно, подчиняются коман-
дам  смещения, если они есть. Условные префикс-литералы не под-
чиняются команде смещения поля (однако, чтобы обеспечить смеще-
ние этих литералов, можно использовать команду Сn).
     Данное поле может ассоциироваться с более, чем одним лите-
ралом. В этом случае различные литералы должны подчиняться сле-
дующим правилам и порядку:

     Префикс-литералы .
     1.Один  или  более условных префикс-литералов. За условным
префикс-литералом может следовать другой условный префикс-лите-
рал, команды вертикального и горизонтального размещения, коман-
ды режима, и/или esc-команды. (см. раздел 3.3.6 " Команда пере-
хода ( Escape ) " ). Все команды между первым условным префикс-
литералом и ассоциируемым с ним селектором поля становятся  ус-
ловными  и  будут  выполнены только при наличии поля, иначе они
игнорируются.
     2.Один и только один повторяющийся  префикс-литерал.  Если
такой  литерал  есть,  он должен непосредственно предшествовать
ассоциируемому селектору поля.

     Суффикс-литералы.
     3.Один и только один повторяющийся  суффикс-литерал.  Если
такой  литерал есть, он должен следовать непосредственно за ас-
социируемым селектором поля.
     4. Один и только один условный суффикс-литерал. Если такой
литерал есть, он должен следовать непосредственно за  повторяю-
щимся суффикс-литералом,  или ассоциируемым селек-
тором поля.
     5. Суффикс-литералы не должны разделяться запятыми,  и  не
должно  быть  запятой  между селектором поля и первым суффикс -
литералом, запятая обозначает конец суффикс-литералов, ассоции-
руемых с данным селектором поля.
     Hулевые  литералы (т.е. литералы длиной ноль, такие как ""
или ||) разрешаются и могут быть  использованы,  например,  как
префикс-литералы,  для обеспечения условного вертикального раз-
мещения или как суффикс-литералы, для временного подавления  ав-
томатической пунктуации, которую CDS/ISIS обеспечивает в режиме
данных.
     Литералы  переводятся  в заглавные буквы, если расположены
после команды режима.
     Примеры различных типов литералов приведены на рисунке 15.
_________________________________________________________________________

        Формат                                 Вывод
---------------------------      ----------------------------------------
'MFN:   ',mfn(3)/                MFN:   004
mdl,"Заглавие:  "v24(0,10)       Заглавие:An  Electric  hydrometer
                                 apparatus for measuring water-vapour
                                 loss from plants in the field.
'MFN:   ',mfn(3)/mdl,            MFN:   004
"Заглавие: ",mdu,v24(0,10)       Заглавие: AN ELECTRIC HYDROMETER
                                 APPARATUS   FOR  MEASURING WATER-VAPOUR
                                 LOSS  FROM  PLANTS  IN THE FIELD.
'MFN:   ',mfn(3)/mdu,            MFN:   004
"Заглавие: ",v24(0,10)           ЗАГЛАВИЕ: AN ELECTRIC HYDROMETER
                                 APPARATUS   FOR  MEASURING WATER-VAPOUR
                                 LOSS  FROM  PLANTS  IN THE FIELD.
v70                              Grieve, B.J.Went, F.W.
v70|; |                          Grieve, B.J.; Went, F.W.;
v70+|; |                         Grieve, B.J.; Went, F.W.
|; |v70                          ; Grieve, B.J.; Went, F.W.
|; |+v70                         Grieve, B.J.; Went, F.W.
"Авторы"/v70(3,3)+|; |           Авторы
                                    Grieve, B.J.; Went, F.W.
|(|v70(3,3)|)|                   (Grieve, B.J.)(Went, F.W.)
"(by: ",v70+|; |")"              (by: Grieve, B.J.; Went, F.W.)
mdl,v26                          Paris, Unesco, 1965.
mdl,v26""                        Paris, Unesco, 1965
mdl,v26""/#v99,v30^a             Paris, Unesco, 1965. p. 247-257.
mdl,v26,""/#v44|: |,v30^a        Paris, Unesco, 1965.
                                  Methodology of plant eco-physiology:
                                   proceedings of the Montpellier
                                   Symposium: p.247-257.
  
                              Рисунок 15
________________________________________________________________________
  
3.2.5. Мнимый селектор поля
     Мнимый селектор поля реализует условный вывод литералов  в
зависимости  от наличия или отсутствия данного поля или подполя
без вывода содержимого ассоциируемого поля. Мнимый селектор по-
ля кодируется следующим образом:

                  Dt  или  Dt^x  или  Nt  или  Nt^x,

где:
     D или N- указывает, что это мнимый селектор поля. D указы-
              вает, что  все  ассоциируемые  условные  литералы
              должны  выводиться только когда поле присутствует.
              N указывает, что они должны выводиться только при
              отсутствии поля.
        t  -  метка поля, управляющего выводом литералов.
       ^x - код обычного разделителя подполя. Если он приведен,
              то это значит, что вывод литералов зависит от на-
              личия или отсутствия определенного  подполя  (от-
              метьте,  однако, что отсутствие поля говорит и об
              отсутствии подполей в этом поле).
    Мнимому селектору поля обычно предшествует по крайней  мере
один  условный префикс-литерал (который может быть нулевым), за
ним могут следовать один или более двух условных  префикс-лите-
ралов,  команды вертикального и горизонтального размещения, ко-
манды режима и/или Esc-последовательности. Мнимый селектор поля
не может иметь суффикс-литералов.
     Hесколько примеров этих команд приведены на рисунке 16.
   _____________________________________________________________

           Формат                           Вывод
 ---------------------------    -----------------------------
 "[Только по-англ.]" n76        [Только по-англ]
 "(Отс.)"n70^,v70+|; |          Grieve, B.J.; Went, F.W.
 "(Отс.)"n80,v80+|; |           (Отс.)
 "[Материалы конф.]"d44         [Материалы конф.]
 "[нет даты]"n26^c,v26^c        1965
 "[нет даты]"n27^c,v27^c        [нет даты]

                        Рисунок 16
 _____________________________________________________________
3.2.6. Выражения
     Язык форматирования позволяет вычислять  и/или  сравнивать
значения  с помощью выражений. Выражения построены так, что при
вычислении возвращают значения. Этим значением может быть стро-
ка сиволов (т.е. содержимое данного поля или литерал),  в  этом
случае  выражение называется строковым выражением; число, назы-
вается числовым выражением или им может быть значение истиннос-
ти (истина или ложь), тогда выражение называется  булевым  (или
логическим).  CDS/ISIS  также обеспечивает набор функций, кото-
рые, основываясь на аргументе,  выполняют  какие-то  функции  и
возвращают  значения.  Функции,  возвращающие число, называются
числовыми функциями; функции, возращающие строку символов,  на-
зываются  строковыми; а те, что возвращают значение истинности,
называются булевыми. Только строковые функции  могут  использо-
ваться непосредственно как команды форматирования. Числовые вы-
ражения могут использоваться в булевых выражениях или как аргу-
менты  функций. Булевы выражения и булевы функции могут исполь-
зоваться только в контексте IF команды.
3.2.6.1. Числовые выражения
   Числовые выражения формируются из операндов,  которые  имеют
числовое значение, и операторов, определяющих какие должны быть
произведены вычисления.
   В числовых выражениях можно использовать следующие операнды:
     числовые   константы : такие как 5, 18, 98,65;
числовые  константы могут быть представлены в виде целых чисел,
десятичных или в экспоненциальной нормальной  форме,  например,
1.5Е5  (т.е.  значение  1,5 умножить на 10 в 5-ой степени, т.е.
150000);
     числовыеяфунции: такие как     val(v10)
     (функции описаны в главе "Числовые функции");
      MFN : значение MFN записи;
     числовые выражения: когда выражение используется как опе-
ранд,  оно должно  быть  заключено  в  скобки,  например,
(val(v20)-5).
     Допустимые операторы:
     +  сложение (или унарная +);
     -  вычитание (или унарная -);
     *  умножение;
     /  деление.
     Как и в обычной алгебре при отсутствии скобок унарные опе-
рации выполняются первыми, а умножение и деление выполняются до
сложения  и вычитания. Два и более операторов одного уровня вы-
полняются слева направо.Можно использовать скобки для изменения
порядка вычисления: выражения, заключенные в скобки, выполняют-
ся первыми, и выражения большей глубины вложенности вычисляются
перед выражениями меньшей глубины вложенности скобок.
     Отметьте, что поскольку селекторы поля (т.е.v10 или v10^a)
представляют строки текста, они  не  могут  использоваться  как
операнды в числовых выражениях. Однако, может быть использована
функция  VAL для конвертирования содержимого поля или подполя в
числовое значение.
     Также числовое выражение не может выводиться на  экран,  а
должно  сначала  конвертироваться в символьную строку с помощью
функции F.
     Нами приведены примеры числовых выражений (предполагается,
что MFN=10, v1^a=10, v1^b=20 и v2=30):

            Выражение                        Значение
  -------------------------------           ----------
  0.155е+3                                155
  1е-3                                      0.001
  2*3+9                                    15
  2*(3+9)                                  24
  10-(4*(2-1))                              6
  15*0.001                                  0.015
  mfn+100                                 110
  val(v2)+val(v1^a)*7.5                   105
  (val(v1^a)-val(v1^b))/100                -0.1

     CDS/ISIS версии IBM PC конвертирует все числа,  используе-
мые  в  вычислениях  с плавающей точкой одинарной точности. Это
обеспечивает точность - примерно 7 цифр с максимальным значени-
ем 1.701411Е38. В версии VAX  используются  числа  с  плавающей
точкой двойной точности, что обеспечивает точность
 - 15 цифр.
3.2.6.2.Cтроковые выражения
     Строковые  выражения формируются из операндов, которые яв-
ляются строками символов. Поскольку  CDS/ISIS  не  обеспечивает
явных  строковых операторов, строковое выражение всегда состоит
из одного операнда, которым может быть:
     безусловный литерал: такой например, как некоторый текст
     селектор поля: который  может  включать  команду  смеще-
ние/длина (т.е. v26^c*2.2);
     строковая  функция:  такая, например, как S(v24,v25,v26)
(описанная в разделе 3.3.2. " Строковые функции " ).



Источник: http://www.nbuv.gov.ua/books/19/isis/
Категория: Мои статьи | Добавил: piglet66 (24.06.2012) | Автор: Эндрю Бакстон, Алан Хопкинсон
Просмотров: 3681 | Комментарии: 11 | Теги: литералы, юнифоры, язык форматирования, CDS/ISIS | Рейтинг: 0.0/0
Всего комментариев: 2
2 BrandonPek  
0
natural herbal shampoo <a href=""> https://forums.dieviete.lv/profils/127605/forum/ </a> natural impotence pills

1 piglet66  
0
The JAVAISIS Formatting Language
Formatting rules

Начинаю работать над переводом...

Язык форматирования JAVAISIS
Правила форматирования

Язык форматирования CDS/ISIS, используемый JAVAISIS, в основном тот же самый, что использует WWWISIS (пожалуйста, обратитесь к его Справочному Руководству), но добавлены некоторые новые функции. Заметьте, что некоторые из них are mandatory (доверенные, уполномоченные?):
Master File Number (mandatory)
Вы должны добавить к главному формату печати (the one
соответствует format1 в файле DBLIST) следующую команду:
’mfn=’mfn/,
в самом начале формата!
End spacing
Не забудьте добавить команды вертикального spacing
/#
как последние команды формата печати по умолчанию
(см. CDS.PFT в the sample БД).
Новые команды
Команды форматирования символов
Этот набор команд concerns the appearance текстовых символов. Они закодированы следующим образом:

Command
Function

You have поместить их между ‘…’ или “…”, например:
…,“{b”v124”}”,…
to have the tag 124 жирными символами.

{bxxxx}
Показать 'xxxx' жирным
{ixxxx}
Показать 'xxxx' курсивом

В порядке использования этих команд you have to as
literals и заключить их в одиночные или двойные кавычки (‘…’ или “…”). Например:
…,“{b”,v124,”}”,…
to display the tag 124 жирными символами.

Adding Hypertext links to formats: команда LINK

Как команда LINK системы CDS/ISIS для Windows позволяет вам добавить интерактивности в ваш формат, команда l позволяет вам setup a link to execute внешнюю программу. Например, в CDS.PFT вы найдете a link to execute браузер Netscape.
The general syntax is:
{ltext to print|external program call}
The 'text to print' будет показан на экране в окне Browse window в красном. When clicked, будет выполнен 'external program call'.
Adding Hypertext links to search
Команда s command позволяет вам setup a link для выполения нового поиска.
The general syntax is:
{stext to display|term}
The 'text to display' будет показан в окне Browse в синем. Clicking this text will execute новый поиск для term, и результат are показан в новом окне.

Имя *:
Email *:
Код *: