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

Тема в разделе "Lotus - Программирование", создана пользователем DNT, 11 дек 2008.

  1. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Добый день.
    Вот немогу никак допереть:

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

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    ArrayReplace. Быстродействие не мерял.
     
  3. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    1 поле в лист, 2 в лист, перебор по любому списку с проверкой а есть ли такой элемет во втором списке.
    Думаю так быстрее всего будет
     
  4. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    - cool ... я бы наверное при постановке такой задачки воспользовался @Keywords(field1; field2)

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

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    А ты к Нику Норкину на НотесНет загляни. Там в статейках и не то ещё есть :)
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ArrayUnique, ArrayReplace, Trim, FullTrim
    все это есть в скрипте
     
  7. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    кстати - спасибо! ... дааавно туда не смотрел
     
  8. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Всем спасибо. Вопрос решился используя ArrayReplace.
    Основная задача была добиться высокого быстродействия. Разницу во времени работы что на формулах, что на скрипте визуально отличить невозможно - почти мгновенно отрабатывает, при том что оба поля по 20кБ.
    Так что я остановился на ArrayReplace.
     
  9. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Вплоть до 6-ки на собаках ВСЁ ВСЕГДА работало быстрее. Потом г.Кац переписал движок и ..
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    вот тут интересно, использовалось обращение "господин" или какое-то другое слово? :))

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

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7

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

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    когда как, иногда есть, иногда как нагородят, что не поймешь зачем оно надо и что делает...
     
Загрузка...
Похожие Темы - Пересечение списков
  1. MicRaiS
    Ответов:
    1
    Просмотров:
    1.439
  2. pastorixx
    Ответов:
    1
    Просмотров:
    2.141
  3. gx6060
    Ответов:
    2
    Просмотров:
    414
  4. gx6060
    Ответов:
    0
    Просмотров:
    264
  5. Seriy1994
    Ответов:
    1
    Просмотров:
    1.220

Поделиться этой страницей