Lotusscript Library

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#1
Всем здрасте!
Есть у кого-нить наработки как получить перечень процедур из библиотеки?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 569
263
#2
коллеги вродиж выкладывали (без сорцов :D )
декомпиллер разрабатывается ? ;)
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#3
нет :D
так высоко я не прыгаю ;)
мне по скромному... просто имена процедур
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#5
с какой стороны к этому вопросу подойти?
парсить всю базу?
Либа это же вроде бы не отдельный документ....
 

nvyush

Lotus team
22.04.2009
2 317
0
#6
с какой стороны к этому вопросу подойти?
парсить всю базу?
Либа это же вроде бы не отдельный документ....
Вообще-то либа есть отдельный документ. Ежели глянуть в её свойства, можно найти и список полей, и юнид.
 

Omh

Lotus team
04.07.2007
2 210
1
#10
Тогда всё просто.

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

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#12
Я за первый вариант, на мой взгляд работает стабильнее.
какая разница, что парсить?..
в первом варианте только лишние телодвижения - получить DXL, получить из него значение поля, которое в итоге будет иметь то же значение, что и поле в документе!
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#13
Akupaka
ну как по мне разница первого и второго метода в том, что те кто умею парсить XML и те кто умеют работать со стрингом, так как во 2-м случае нужно лишь узнать названия за сторок типа Sub, Function
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 569
263
#14
в первом случае - достаточно XSLT
во втором - писать обработку в коде (и не факт, что плучится оптимально)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#15
ну как по мне разница первого и второго метода в том
парсят строки, а с XML - работают! :)

в первом случае - достаточно XSLT
заставил меня усомниться в моих словах...

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