Lotusscript Library

Тема в разделе "Lotus - Программирование", создана пользователем NickProstoNick, 17 ноя 2009.

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем здрасте!
    Есть у кого-нить наработки как получить перечень процедур из библиотеки?
     
  2. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    коллеги вродиж выкладывали (без сорцов :D )
    декомпиллер разрабатывается ? ;)
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    нет :D
    так высоко я не прыгаю ;)
    мне по скромному... просто имена процедур
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    тем же DXML получите перечень процедур :D
     
  5. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    с какой стороны к этому вопросу подойти?
    парсить всю базу?
    Либа это же вроде бы не отдельный документ....
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Вообще-то либа есть отдельный документ. Ежели глянуть в её свойства, можно найти и список полей, и юнид.
     
  7. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    либа отдельный док, и её отдельно можно парсить
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    А при открытом дизайне или закрытом?
     
  9. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    открытом
     
  10. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Тогда всё просто.

    2 способа:
    Строим NotesNoteCollection с параметрами:
    <!--shcode--><pre><code class='vb'>NNc.SelectScriptLibraries = True
    NNc.SelectionFormula = {$TITLE = "ИМЯ_ТВОЕЙ_БИБЛИОТЕКИ"}[/CODE]
    После build'a NNc получаем коллекцию с одним NoteID (твоей библиотеки).
    Соответсвенно, можем получить документ библиотеки (GetDocumentByNoteID)

    Теперь развилка:
    1. выкидываем этот документ в DXL и парсим.
    2. парсим поле с названием $ScriptLib (там хранится нескомпилированный скрипт)

    Я за первый вариант, на мой взгляд удобнее.
     
  11. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Omh
    ок! дякую! Буду пробовать
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    какая разница, что парсить?..
    в первом варианте только лишние телодвижения - получить DXL, получить из него значение поля, которое в итоге будет иметь то же значение, что и поле в документе!
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Akupaka
    ну как по мне разница первого и второго метода в том, что те кто умею парсить XML и те кто умеют работать со стрингом, так как во 2-м случае нужно лишь узнать названия за сторок типа Sub, Function
     
  14. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    в первом случае - достаточно XSLT
    во втором - писать обработку в коде (и не факт, что плучится оптимально)
     
  15. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    парсят строки, а с XML - работают! :)

    заставил меня усомниться в моих словах...

    короче, вывод - согласен, что первый метод может быть удобнее, если нужно узнать названия функций.
    теперь, объясняю, что к чему, т.е. почему я изменил мнение.
    когда я ответил первый раз, я видел лишь библиотеку, в которой не было процедур, а были лишь классы, т.е. заполнена секция деклараций, и просматривая xml библиотеки я видел лишь просто текстовую строку, где весь код свален в хлам. но, прочитав про применение xslt, я решил прикинуть как его к той сплошной строке можно применить! и я полез в другую либу, в которой были только процедуры! каково было мое удивление, что та либа имела совсем другой вид в xml... сначала я подумал много неверного, но в итоге выяснилось, что каждая процедура имеет свою сущность в xml, а раздел деклараций свою отдельную, но которая не делится на сущности классов и методов, а свалена в кучу.
     
Загрузка...

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