• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы DNT
  • Дата начала
D

DNT

Добый день.
Вот немогу никак допереть:

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

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

Kizarek86

Green Team
20.07.2007
871
7
BIT
38
1 поле в лист, 2 в лист, перебор по любому списку с проверкой а есть ли такой элемет во втором списке.
Думаю так быстрее всего будет
 

Murtas

Green Team
11.04.2006
137
1
BIT
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
7 941
609
BIT
214
ArrayUnique, ArrayReplace, Trim, FullTrim
все это есть в скрипте
 
D

DNT

Всем спасибо. Вопрос решился используя ArrayReplace.
Основная задача была добиться высокого быстродействия. Разницу во времени работы что на формулах, что на скрипте визуально отличить невозможно - почти мгновенно отрабатывает, при том что оба поля по 20кБ.
Так что я остановился на ArrayReplace.
 
30.05.2006
1 345
12
BIT
0
Вплоть до 6-ки на собаках ВСЁ ВСЕГДА работало быстрее. Потом г.Кац переписал движок и ..
 
A

Akupaka

Потом г.Кац переписал движок и ..
вот тут интересно, использовалось обращение "господин" или какое-то другое слово? :))

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

DNT

вот тут интересно, использовалось обращение "господин" или какое-то другое слово? ;))


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


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

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

Akupaka

когда как, иногда есть, иногда как нагородят, что не поймешь зачем оно надо и что делает...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!