Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Получение определенного вложенного поля
Пользователь: _star (IP-адрес скрыт)
Дата: 24, March, 2013 16:30

День добрый,

не подскажете, как можно определить количество вложенных полей и получить поле/подполе определенного вложенного поля?

&umarci('4N1/N2') выдает только первое поле (или подполе из него).

Может есть еще какие-либо варианты?

Сама задача: поле v461 содержит несколько вложенных полей v702, требуется на основе них сформировать соответствующее количество записей поля v961.

Спасибо.

Re: Получение определенного вложенного поля
Пользователь: Gena (IP-адрес скрыт)
Дата: 25, March, 2013 02:12

как в одном ПОЛЕ вложено другое ПОЛЕ? Покажите как это выглядит?

Re: Получение определенного вложенного поля
Пользователь: _star (IP-адрес скрыт)
Дата: 25, March, 2013 22:16

Вот, например, поле 461:
012001 aПроблемы правовой и социальной защиты в системе профессиональной и социальной реабилитации незрячих детей и молодежиb[Электронный ресурс]eв 2 кн.fРос. акад. образования, Ин-т коррекц. педагогикиgнауч. ред. Л. И. ПлаксинаvКн. 11210 aМ.cНаука : Флинтаd2004-.1702 1aРос. академия образования4изд. организация1702 1aИн-т коррекц. педагогики4изд. организация1702 1aПлаксинаbЛ. И.4342

Re: Получение определенного вложенного поля
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 28, March, 2013 13:53

_star написал(а):
-------------------------------------------------------
> День добрый,
>
> не подскажете, как можно определить количество
> вложенных полей и получить поле/подполе
> определенного вложенного поля?
>
> &umarci('4N1/N2') выдает только первое поле (или
> подполе из него).
>
> Может есть еще какие-либо варианты?
>
> Сама задача: поле v461 содержит несколько
> вложенных полей v702, требуется на основе них
> сформировать соответствующее количество записей
> поля v961.
>
> Спасибо.


Это делается после импорта из РУСМАРКА глобальной корректировкой rmarci1.gbl

Re: Получение определенного вложенного поля
Пользователь: _star (IP-адрес скрыт)
Дата: 03, April, 2013 23:39

Спасибо.

А можно ли подобное сделать при импорте и применении ТВП переформатирования (FST)?

Хотя бы получить определенное (не первое) вхождение вложенного поля v702 в поле v461 и получить из него подполя (^a, ^b, ...).

Re: Получение определенного вложенного поля
Пользователь: Gena (IP-адрес скрыт)
Дата: 04, April, 2013 08:25

Давайте включим свет и определимся. Вы делаете импорт из Русмарка? Так в Ирбисе есть готовые инструменты для приведения записей к нужному виду. Почитайте инструкцию по импорту из файл RUSMARC.TXT. Там описана технология, при которой вся нарезка и преобразование происходят автоматически. Или у вас чего-то не хватает? Или формат данных нарушен и стандартная технология не срабатывает?

Re: Получение определенного вложенного поля
Пользователь: _star (IP-адрес скрыт)
Дата: 04, April, 2013 08:53

Делаю миграцию из предоставленного формата. Поскольку коллег не все устраивает при миграции, то я так понимаю, что это не совсем Русмарк.
Как раскодировать вложенные поля в глобальной корректировке - понятно.
Остается вопрос - можно ли как-то достучаться до вложенных полей, отличных от первого (и его подполей) непосредственно при миграции (FST), чтобы минимизировать действия.

Re: Получение определенного вложенного поля
Пользователь: Gena (IP-адрес скрыт)
Дата: 09, April, 2013 08:17

Нашел замечательный вариант для решения этой задачи. Есть недокументированный форматный выход:

&umarci('1NNN#A#B')

NNN - номер поля для вывода
A - разделитель подполя
B - номер разделителя в поле

Например, вот такая конструкция

&umarci('180#a#3')

выведет третье значение подполя "а" в поле 80



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.