|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
|
Как правильно хранить глобальную переменную04.03.2025, 09:49. Показов 2710. Ответов 47
Метки нет (Все метки)
Здравствуйте. Такая дилемма - есть телеграмм бот, при его запуске я объявляю пустой ассоциативный массив. В процессе работы массив наполняется данными. Но так как бот в стадии активной разработки, я его постоянно перезапускаю. Соответственно с каждым перезапуском все данные , накопленные в массиве теряются. Есть ли способ объявить массив вне файла с текстом бота, потом с помощью какого-нибудь include (если такое есть) включать в бот уже наполненный (ну или еще ненаполненный) массив. Т.е. как сделать, чтобы переменная жила отдельно от программы ее использующей?
0
|
|
| 04.03.2025, 09:49 | |
|
Ответы с готовыми решениями:
47
Как правильно объявить глобальную переменную? Как описать глобальную переменную Передать переменную из обработчика событий как глобальную |
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 04.03.2025, 09:50 | |
|
бот жеж на серваке критутиццо? вот там и храни
0
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 09:58 [ТС] | ||
|
тем более бот (особенно в моем исполнении) в любой момент может очень неожиданно упасть и все, что можно было бы записать при его корректном завершении будет утеряно. А записывать в текст каждый раз при добавлении в массив или удалении из него какой то отдельной пары "ключ-значение" - это уже (такое себе)^2
0
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 04.03.2025, 10:08 | |
|
для этого люди придумали базы данных
Добавлено через 45 секунд если совсем заморочится - брокеры сообщений
0
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
|
| 04.03.2025, 10:21 [ТС] | |
|
А есть ли более простые методы? а то это как для доставки из магазина до дома использовать ракету и всю ракетостроительную отрасль, когда можно просто на велосипеде довезти
0
|
|
|
1284 / 1250 / 186
Регистрация: 21.01.2024
Сообщений: 5,754
|
|
| 04.03.2025, 10:25 | |
|
Если программа падает/завершается, то в памяти ничего не остается. Поэтому и хранят такие данные во внешних хранилищах - просто файлах или БД, если данных много.
Что такого просто записывать и считывать файл с json?
1
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 10:37 [ТС] | ||
|
Добавлено через 3 минуты а как кстати на js создать БД, представляющую собой ассоциативный массив?
0
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 04.03.2025, 10:41 | ||
|
Добавлено через 1 минуту для ноды можно поискать библу для локальной бд Добавлено через 45 секунд https://www.npmjs.com/package/db-local
1
|
||
|
3842 / 1691 / 432
Регистрация: 14.03.2022
Сообщений: 4,310
|
||
| 04.03.2025, 10:47 | ||
Сообщение было отмечено pincet как решение
РешениеСамым лучшим вариантом, как писал камрад voraa - является БД. Возможно простенькая и мало затратная по ресурсам, та же NeDB...https://rukovodstvo.net/posts/id_1346/ Если даже такое сложно - остаются файлы, в которые будут записываться данные. Вопрос только в их количестве и внутреннем формате хранения самих данных. Зная что именно тебе нужно - можно предложить какие-то приемлемые варианты... Добавлено через 3 минуты granit201z, например та же Firebase предоставляет бесплатный вариант небольшого хранилища данных... https://firebase.google.com
1
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 04.03.2025, 11:05 | ||
|
0
|
||
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 11:12 [ТС] | ||
|
... ну и при каждом изменении города i-м пользователем вести "чтения-записи" файла, при условии что количество пользователей достигнет расчетного значения - боюсь упадет не только бот, но и мой ноут)
0
|
||
|
1284 / 1250 / 186
Регистрация: 21.01.2024
Сообщений: 5,754
|
|||
| 04.03.2025, 11:28 | |||
|
Есть методы JSON.stringify и JSON.parse, которые могут переводить объекты в строку json и обратно. Добавлено через 1 минуту
0
|
|||
|
3842 / 1691 / 432
Регистрация: 14.03.2022
Сообщений: 4,310
|
|
| 04.03.2025, 11:31 | |
|
0
|
|
|
1284 / 1250 / 186
Регистрация: 21.01.2024
Сообщений: 5,754
|
|||
| 04.03.2025, 11:38 | |||
|
0
|
|||
|
3842 / 1691 / 432
Регистрация: 14.03.2022
Сообщений: 4,310
|
||||
| 04.03.2025, 11:41 | ||||
|
Если использовать файлы...
Саму структуру пользователь - город - можно хранить в виде объекта в json-файле. Перезаписывать его каждый раз при появлении нового пользователя или смены города пользователем...![]() Добавлено через 2 минуты NeDB - если нужно NoSQL...
0
|
||||
|
1284 / 1250 / 186
Регистрация: 21.01.2024
Сообщений: 5,754
|
|
| 04.03.2025, 11:42 | |
|
0
|
|
|
3842 / 1691 / 432
Регистрация: 14.03.2022
Сообщений: 4,310
|
|
| 04.03.2025, 11:45 | |
|
granit201z, вместо "рассказов" о данных - лучше показывать их структуру.
Для ее описания можно использовать довольно удобный ресурс https://sql.toad.cz/?
0
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 11:53 [ТС] | ||
|
0
|
||
|
3842 / 1691 / 432
Регистрация: 14.03.2022
Сообщений: 4,310
|
||
| 04.03.2025, 11:58 | ||
![]() Тогда это точно нужно на БД переходить. Я-то думал что публикации просто "складываются" при получении и просто показываются некому пользователю в той последовательности, какой они пришли. Если же предполагается более сложная работа с ними, как то: - изменение "порядка следования" - поиск Это уже задачи СУБД.
0
|
||
|
1284 / 1250 / 186
Регистрация: 21.01.2024
Сообщений: 5,754
|
||
| 04.03.2025, 11:58 | ||
|
Не могу предположить, насколько большие файлы, не зная, что в них - сами публикации или только url, сколько их (актуальных и старых)
0
|
||
| 04.03.2025, 11:58 | |
|
Помогаю со студенческими работами здесь
20
Завести глобальную переменную в JS Обработчик потока не видит глобальную переменную В теле функции изменить глобальную переменную
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|