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

DNT

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

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

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

Kizarek86

Lotus team
20.07.2007
864
4
#3
1 поле в лист, 2 в лист, перебор по любому списку с проверкой а есть ли такой элемет во втором списке.
Думаю так быстрее всего будет
 

lmike

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

DNT

Постоялец форума
Lotus team
12.10.2005
594
2
#8
Всем спасибо. Вопрос решился используя ArrayReplace.
Основная задача была добиться высокого быстродействия. Разницу во времени работы что на формулах, что на скрипте визуально отличить невозможно - почти мгновенно отрабатывает, при том что оба поля по 20кБ.
Так что я остановился на ArrayReplace.
 
30.05.2006
1 345
11
#9
Вплоть до 6-ки на собаках ВСЁ ВСЕГДА работало быстрее. Потом г.Кац переписал движок и ..
 

Akupaka

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

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

DNT

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


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

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

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

Akupaka

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