Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
Повторяющиеся группы
Пользователь: Vladimir Kim (IP-адрес скрыт)
Дата: 24, May, 2004 15:41

Добрый день,

Столкнулся со следующей задачей - необходимо разделить автора и его иницилы при конвертации. Для этого пытаюсь составить правило для 701 первого поля в таблице переконвертации VMARKI.

Изначально такая картина (Дополнительные авторы, формат USMARK):
700: ^aИванов И.А.
700: ^aСидоров Е.А.
700: ^aКуприянов Г.И.
700: ^aЛетвиненко Т.П.

необходимо получить:
701: ^aИванов^bИ.А.
701: ^aСидоров^bЕ.А.
701: ^aКуприянов^bГ.И.
701: ^aЛетвиненко^bТ.П.

пишу такое правило в таблице переконвертирования для поля 701:
('^A'&unifor("E1"v701^a)'^B'&unifor("F1"v701^a)/)

получаю:
701: ^aИванов^bИ.А.
701: ^a^b
701: ^a^b
701: ^a^b

т.е. первый автор отрабатываеся нормально, а все остальные - оказываются пустыми... Танцы с бубном не помогли...

Что можно сделать в этой ситуации?

Заранее благодарен!
С уважением, Владимир Ким
Инженер-программист НБ МИФИ


Re: Повторяющиеся группы
Пользователь: Куделя (IP-адрес скрыт)
Дата: 25, May, 2004 04:00

(if p(v701^a) then'^A'&unifor(|E1|v701^a)'^B'&unifor(|F1|v701^a)fi/)

Литерал не повторяющийся, почему функция unifor и вохзвращает возвращает пустую строку: параметр (E/F) находит только в первом повторении поля

Re: Повторяющиеся группы
Пользователь: Vladimir Kim (IP-адрес скрыт)
Дата: 26, May, 2004 23:37

Большое спасибо!
Правда с этим вопросом я уже разобрался в тот же день, но с помощью Perl и регэкспов:

Record =~ s/(\w'+)\s+([\w\.]+)/^A$1^B$2/;

:)

С уважением, Владимир Ким
Инженер-программист НБ МИФИ



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