Re: Текущее повторение
Пользователь:
Gena (IP-адрес скрыт)
Дата: 26, January, 2012 10:46
#907/1:_^CПК^A20111115^Birina
#907/2:_^CКТ^A20111116^BNata
#907/3:_^Cobrzv^A20111116^BNata
Привожу два формата:
(if p(v907) then if v907^c='ПК' then ... fi fi/)
if v907^c='ПК' then ... fi
Первый формат работает по отдельным строкам, а значит на каждой из трех строк он по очереди берет подполе "С" и сравнивает с заданным значение на знак равенства. Отрабатывает это так:
Первый заход. Взял поле "#907/1:_^CПК^A20111115^Birina ", выдернул из него поле "С" - ПК, сравнил, дал результат.
Второй заход. Взял поле "#907/2:_^CКТ^A20111116^BNata", выдернул из него поле "С" - КТ, сравнил, дал результат.
Третий заход. Взял поле "#907/3:_^Cobrzv^A20111116^BNata", выдернул из него поле "С" - obrzv, сравнил, дал результат.
Второй формат не разбирает строки, а значит он сравнивает не поочередно содержимое подполя "С", а берет содержимое сразу всех повторений этого подполя и выдает вам на сравнение. Этот же формат отрабатывает так:
Взял все повторения поля, выдернул из них подполе "С" - ПККТobrzv и выдал на сравнение.
Теперь ответ по поводу "равно" и "содержит" - если не работать с отдельными повторениями поля, то вам равно выдаст результат только в случае одного повторения этого поля, если поля будет два, то вы уже не будете получать результат. А для "содержит" нет никаких проблем - эта команда не учитывает никаких правых и левых символов, только вхождение своей комбинации символов.