Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Каталогизатор :  ИРБИС Irbis
 
Глобальная корректировка - отредактировать подполе
Пользователь: kirwish (IP-адрес скрыт)
Дата: 30, January, 2020 09:45

Уважаемые коллеги, здравствуйте

Возможно этот вопрос уже решался, но нашел решение только через экспорт и блокнот. Но хотелось бы через глобальную корректировку, чтобы не задеть другие поля.

Вопрос следующий: есть подполе 215^A с содержимым "420 c.". А нам надо разделить на два подполя 215^A420 ^1c . Чтобы объем и единицы измерения были в разных полях.

Возможно ли в Ирбисе не полностью содержимое подполя менять, а часть?

Спасибо!

Re: Глобальная корректировка - отредактировать подполе
Пользователь: ochagova (IP-адрес скрыт)
Дата: 30, January, 2020 11:01

Попробуйте так, собрав, конечно формат в одну строку:

REP
215^A
F
(if p(v215)
then
if p(v215^A)
then
if v210='420 c.' then '420 ^1c .' else v215^A fi
else #
fi
fi/)

Re: Глобальная корректировка - отредактировать подполе
Пользователь: kirwish (IP-адрес скрыт)
Дата: 30, January, 2020 13:22

Большое спасибо за ответ! А командой REP можно ли частично заменять (не целиком) поле или подполе на новое значение? У нас в разных записях обьем (страниц) указан разный (не 420)

К примеру, поле 215^A принимает значения "420 с.", "350 c.", "210 c."

можно ли командой REP сделать замену "*0 с." на "*0 ^1с." ?
Где * - любое количество любых символов

В блокноте с txt выгрузкой мы делали просто "0 с." меняли на "0 ^1с.", но блокнот он все поля изменил, поэтому нас это не устроило. Хотелось бы глобальной корректировкой одно поле редактировать.

Спасибо

Re: Глобальная корректировка - отредактировать подполе
Пользователь: Grievous (IP-адрес скрыт)
Дата: 30, January, 2020 14:25

В 21 веке редактировать тексты блокнотом это мазохизм smiling smiley
Используйте редакторы с поддержкой регулярных выражений.
Искать
(#215:\s\^A\d+)\s+с\.
заменить на
$1^1c.
http://irbis.elnit.org/file.php?10,file=19787

--
Сергей Кузнецов



Редактировано 1 раз. Последний раз 30.01.2020 14:25 пользователем Grievous.

Вложения: regexp.png (28.7KB)  
Re: Глобальная корректировка - отредактировать подполе
Пользователь: Grievous (IP-адрес скрыт)
Дата: 30, January, 2020 14:29

А вообще странно, что а ИРБИСЕ, который работает с текстами, нет такого элементарного понятия как regexp.

Вот тут [irbis.elnit.org]
пользователи смогли прикрутить собственную DLL для реализации недостающей функции, но я не понял пока как этим пользоваться.

--
Сергей Кузнецов

Re: Глобальная корректировка - отредактировать подполе
Пользователь: ochagova (IP-адрес скрыт)
Дата: 31, January, 2020 10:29

Блокнот, по-моему, непричем. Речь идет о замене в БАЗЕ. Вы же показываете замену в выгруженной БД. По-вашему, надо выгрузить БД, заменить вашим прекрасным способом и опять вгрузить?
Можно, даже лучше, еще воспользоваться оператором CHA:
CHA
215^A
*
'0 с.'
'*0 ^1с.'

Re: Глобальная корректировка - отредактировать подполе
Пользователь: Grievous (IP-адрес скрыт)
Дата: 31, January, 2020 11:24

Лишняя звёздочка и пробел. Наверное лучше так:
CHA
215^A
*
' с.'
'^1с.'

--
Сергей Кузнецов

Re: Глобальная корректировка - отредактировать подполе
Пользователь: Милана А. (IP-адрес скрыт)
Дата: 31, January, 2020 11:25

Поле 215 - повторяющееся, и в поле 215 теоретически может быть заполнено и подполе ^A c ' с.' и подполе ^A. Поэтому я бы сначали исключила эти случаю, или проверила бы в базе присутствие таких записей. Последовательный поиск:
| v215^A:' с.' and (not(v215:'^1'))
И только на этих записях я бы выполнила глобальную корректировку:
CHA
215^A
*
' с.'
' ^1с.'



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