Пересечение списков.

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#1
Добый день.
Вот немогу никак допереть:

Есть два поля на форме: field1 и field2, оба они текстовые с "мультивалю".
Нужно найти результат пересечения списков - вывести совпадающие значения из этих полей.
На формуле решается таким макаром:
@Prompt([Ok]; "Rezult"; @Implode(@Trim(@Replace (field1; field2 : field1; field2))))
Работает на ура.

Теперь мне в теле агента понадобилось сделать тоже самое и дальше использовать полученный результат.
Как лучше организовать? Перебором? Списки большие, нужно добиться максимальной производительности!
Как бы вы решили такую задачу?
 

Kizarek86

Well-Known Member
Lotus team
20.07.2007
863
6
#3
1 поле в лист, 2 в лист, перебор по любому списку с проверкой а есть ли такой элемет во втором списке.
Думаю так быстрее всего будет
 

Murtas

Well-Known Member
Lotus team
11.04.2006
128
0
#4
@Trim(@Replace (field1; field2 : field1; field2))
- cool ... я бы наверное при постановке такой задачки воспользовался @Keywords(field1; field2)

а если тебе нужно тоже самое на LotusSript, то welcome - Evaluate( @Trim(@Replace (field1; field2 : field1; field2)), doc )
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 486
363
#6
ArrayUnique, ArrayReplace, Trim, FullTrim
все это есть в скрипте
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#8
Всем спасибо. Вопрос решился используя ArrayReplace.
Основная задача была добиться высокого быстродействия. Разницу во времени работы что на формулах, что на скрипте визуально отличить невозможно - почти мгновенно отрабатывает, при том что оба поля по 20кБ.
Так что я остановился на ArrayReplace.
 

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 333
4
#9
Вплоть до 6-ки на собаках ВСЁ ВСЕГДА работало быстрее. Потом г.Кац переписал движок и ..
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#10
Потом г.Кац переписал движок и ..
вот тут интересно, использовалось обращение "господин" или какое-то другое слово? :))

Так что я остановился на ArrayReplace.
а почему ж не на @Evaluate({@Keywords(...)})?.. вопрос риторический :)
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#11
вот тут интересно, использовалось обращение "господин" или какое-то другое слово? ;))


а почему ж не на @Evaluate({@Keywords(...)})?.. вопрос риторический :)

)))
а кто это "г.Кац"? (или тоже риторический ... :) )

кстати я вот о чем хотел спросить: есть ли смысл использовать @Evaluate () когда есть аналогичная функция на LS. Всегда думал что нет, и лучше использовать LS, ИМХО.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#12
когда как, иногда есть, иногда как нагородят, что не поймешь зачем оно надо и что делает...