Есть ли доступ к глобальным переменным?

Автор eeigor, 8 января 2022, 14:03

0 Пользователи и 1 гость просматривают эту тему.

eeigor

Python: Функция globals() возвращает словарь со значениями переменных, представляющий текущую глобальную область видимости модуля. Это всегда словарь области видимости переменных текущего модуля.

Вопрос: Есть ли что-то подобное в StarBasic?
Или есть возможность получить список констант модуля?
Как считать их из декларативной части модуля? Впрочем, я могу извлечь текст модуля, но есть ли функции для работы со структурой модуля (по аналогии с VBA: там есть отдельная библиотека VBIDE).
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

#1
@sokol92, пользователь определяет константы с именами диапазонов:
Const DATA1 = "Name1"
Const DATA2 = "Name2"
' и т. д.

Объявлен массив:
Global aDataRanges() As Object


Я хочу чтобы массив диапазонов инициализировался в цикле в зависимости от количества констант имён без каких-л. изменений в коде процедур модуля. То есть все изменения – только в декларативной части.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Цитата: eeigor от  8 января 2022, 17:15пользователь определяет константы с именами диапазонов:
Добрый день!
Пользователь вряд ли это делает, поскольку обычно не имеет доступа с исходному тексту программы.
Для такого рода списков можно, например, задействовать имена документа Calc типа T_DATA1, T_DATA2, ... Цикл по подобным именам составляется просто.

С интроспекцией кода в LO Basic проблемы (как и в VBA). Я на сегодня не знаю даже, как из кода Basic узнать имя текущего модуля, библиотеки, где эта библиотека расположена  и т.д.
Владимир.