@radb0310 Я знаю, модуль говно код лютый, не юзай его.
custom settings
-
Название: CustomSettings
Версия: 1.2
Данные: https://mega.nz/file/hWR2HYBZ#Stqt4fII4zTuaXp6M1P47IPCQIta17Tq38SUAxbCc7A
CustomSettings.zip
Согласие на добавление модуля в BAS: Да.
Описание: Модуль позволяет сохранять и читать определенные строковые, числовые и JSON-object переменные из любого потока и/или/в/из файла(озу) по желанию. Удобная замена глобальным переменным. Также есть аналог "ресурсов баса", построчное чтение больших текстовых файлов, (с фантомным удалением, (для потоков) по желанию.



История версий:
-
@Int64 said in custom settings:
Название: CustomSettings
Версия: 1.0
Данные: 6164a2e6-32ed-4df4-8bf4-e14af6cd1a96-CustomSettings.zip
Согласие на добавление модуля в BAS: Да.
Описание: Модуль позволяет сохранять и читать определенные настройки из любого потока и/или/в из файла(озу) по желанию. Удобная замена глобальным переменным.Я не совсем понял про замену глобальных переменных, вы же просто создаёте объект в глобальной переменной. Причём используете зачем то 3 глобальных переменных:
- SETTINGS_MODULE_INITIALIZED
- DEFAULT_SAVE_DIR
- SETTINGS_OBJECT
Хотя можно было использовать одну глобальную переменную с тремя свойствами.
Также не лучшая идея использовать в модуле переменные BAS (в двойных квадратных скобках или с приставкой "VAR_"), их может случайно переопределить пользователь
-
@Fox производительность страдает? ;D p.s с глобальными переменными не удобно в басе работать. много путанницы.
Переделывал мб, забыл удалить.
Я имею ввиду я их использую, эти глобальные, но самому не надо вручную это делать, а 1 кубиком.
p.s зато в потоках все быстро работает, можно из файла получать и сохранять. ну кому надо, тот возьмет. это халява!
Подожду отзывов, мб исправлю что там. -
@Int64 said in custom settings:
@Fox производительность страдает? ;D p.s с глобальными переменными не удобно в басе работать. много путанницы.
Переделывал мб, забыл удалить.
Я имею ввиду я их использую, эти глобальные, но самому не надо вручную это делать, а 1 кубиком.
p.s зато в потоках все быстро работает, можно из файла получать и сохранять. ну кому надо, тот возьмет. это халява!
Подожду отзывов, мб исправлю что там.Дело не в производительности, а в зарезервированном имени глобальной переменной. Могут возникнуть проблемы если пользователь будет использовать глобальные переменные с названиями:
- SETTINGS_MODULE_INITIALIZED
- DEFAULT_SAVE_DIR
- SETTINGS_OBJECT
Или локальные переменные с названиями:
- OPTIONS_NAME
- FROM_FILE
- READ_FILE_DIRECTORY
- SETTINGS_OBJECT
- DEFAULT_SAVE_DIR
- PROJECT_DIRECTORY
- USER_SETTINGS_OBJECT
- FILE_CONTENT
Локальные переменные BAS внутри модуля находятся в глобальной видимости потока, то есть пользователь может случайно переопределить данные, которые использует модуль, или модуль втихаря переопределит переменную с данными пользователя. Как например со стандартным именем переменной при чтении файла "FILE_CONTENT"
-
Cool module and appreciate the contribution but I neither understand whats wrong with current global var
-
дайте прошлую версию
или обновите модуль tgbotserver на эту версию
Интерфейс действия "CustomSettings_initializeSettings" отсутствует или поврежден. -
@Fox said in custom settings:
.... Или локальные переменные с названиями: ....
@Fox said in custom settings:
Локальные переменные BAS внутри модуля находятся в глобальной видимости потока,
По хорошему, вероятно, BAS должен изолировать переменные модуля в своем отдельном пространстве имен для модуля и совсем запрещать глобальные переменные. Или эмулировать их поведение, когда внутри кода модуля все есть и работает с глобальными переменными, а наружу ничего не видно.
Если писать скрипт без оглядки на конвертирование его потом в модуль, то, вероятно, придется переделывать скрипт. Как минимум по причине отсутствия изоляции переменных модуля.