Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

22 Январь 2022, 19:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Есть ли доступ к глобальным переменным?  (Прочитано 240 раз)
0 Пользователей и 1 Гость смотрят эту тему.
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 845



« Стартовое сообщение: 8 Январь 2022, 14:03 »

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

Вопрос: Есть ли что-то подобное в StarBasic?
Или есть возможность получить список констант модуля?
Как считать их из декларативной части модуля? Впрочем, я могу извлечь текст модуля, но есть ли функции для работы со структурой модуля (по аналогии с VBA: там есть отдельная библиотека VBIDE).
« Последнее редактирование: 8 Январь 2022, 15:53 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.4.1 Community
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 845



« Ответ #1: 8 Январь 2022, 17:15 »

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

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


Я хочу чтобы массив диапазонов инициализировался в цикле в зависимости от количества констант имён без каких-л. изменений в коде процедур модуля. То есть все изменения – только в декларативной части.
« Последнее редактирование: 8 Январь 2022, 17:19 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.4.1 Community
sokol92
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 704


WWW
« Ответ #2: 8 Январь 2022, 17:48 »

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

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

Владимир.
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!