Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
0 / 2 / 3
Регистрация: 29.01.2017
Сообщений: 83
1

Хранение данных класса, имеющего подключаемые lua-скрипты

07.06.2017, 22:18. Показов 402. Ответов 6

Ну, в общем дело обстояло так:

Предыстория для понимания сути вопроса

Допустим, хочу я иметь базу данных (ну или иной вид сохранения данных, хотя бд привлекает больше всего), в которой храниться будут у меня данные для специальных строк (что таить, строк-выражений), которые не просто вот статичные такие String объекты, а динамически строящиеся, да ещё и каждая по своему, уникальному алгоритму, который получает на вход аргументы (количество может разниться)
Решил я такой цели достигнуть, создав класс, в котором есть поле с названием внешнего lua-скрипта, а в него уже и буду записывать алгоритмы. Аргументы в него передаются обычным String[] args в цикле с использованием bindings.
Ну, это конечно же всё прекрасно, пока не начал я думать о том, как же всё это хранить.

Проблема 1. Она же главная. Аргументы. Каждый аргумент должен иметь описание на понятном пользователю языке. Я вообще не очень красиво сделал, просто создав для массива строк, один для описания а второй для самих значений. Да ещё и зачем-то добавил int размерность этих массивов. Собственно вопрос - а как вообще мне теперь это сохранять. И можно ли более красиво это сделать, например информацию о скрипте и сам скрипт как-то связать? В общем, я в непонятках.

Проблема 2. Большие строки с описанием, этакая документация, но краткая. Пока вообще это в сторону отложил, да и здесь это не главный вопрос, но в будущем (завтра или послезавтра) хочу подумать над добавлением подобного в мой класс. Сохранять их в отдельных файлах, как и скрипты, или же просто в виде String?

Ну и собственно, самое наверное идиотское моё заявление в этой теме, это то что я лишь быстро ознакомился с SQLite, и совершенно ещё не шарю в работе с бд, потому жду от вас, товарищи, лишь напутствий или предложений о том, как лучше это сделать.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2017, 22:18
Ответы с готовыми решениями:

Скрипты lua
Вопрос: вот я у себя на хабе (дсс) настроил викторину, а как мне сделать чтобы бот не получал...

Не компилируются скрипты LUA!
Скрипт LUA не компилируется в редакторе для создания модов по "Ведьмаку" Djinni. Пишет ошибку - ...

Макросы и скрипты (Lua)
У меня тема курсовой - использование языка lua в качестве макросов в языке c++. Ищу в поиске...

Lua-скрипты: как использовать в играх
LUA скрипты как использовать в играх например в игре есть консоль ей можно открыть это понятно ...

6
Эксперт Java
3101 / 2584 / 796
Регистрация: 05.07.2013
Сообщений: 12,464
07.06.2017, 22:25 2
написать класс, который будет хранить тело скрипта, аргументы, описание и что тебе там еще надо?
0
0 / 2 / 3
Регистрация: 29.01.2017
Сообщений: 83
09.06.2017, 00:34  [ТС] 3
У меня уже есть класс который содержит эти поля.
Мне теперь надо придумать как эти данные хранить, в какой форме, в бд, в преференсах, и тд и тп
0
Эксперт Java
3101 / 2584 / 796
Регистрация: 05.07.2013
Сообщений: 12,464
09.06.2017, 09:13 4
Ну храни в бд, в чем проблема то?
0
0 / 2 / 3
Регистрация: 29.01.2017
Сообщений: 83
10.06.2017, 21:31  [ТС] 5
xoraxax, проблема была в том, что надо было хранить массивы аргументов, размерность которых может быть разной.

Я уже решил эту проблему. Сначала читал про JSON, думал использовать его, но потом решил не усложнять и просто в пару строк сделал свой аналог быстрого перевода из массива классов Аргумент (в котором всего два поля) в строку формата "имя_аргумента : значение, имя аргумента 2 : значение 2" ну и так далее.
0
Эксперт Java
3101 / 2584 / 796
Регистрация: 05.07.2013
Сообщений: 12,464
10.06.2017, 22:12 6
а че про мапы не слышал?
0
0 / 2 / 3
Регистрация: 29.01.2017
Сообщений: 83
10.06.2017, 22:45  [ТС] 7
Слышал, использовал, но здесь мне нужно совершенно не то.
Понимаю, вас могло ввести в заблуждение структура в виде пар "имя-значение", но на самом деле мне не нужно имя-ключ, как это используется в мапах. Имя выше, это лишь сообщение, которым будет сопровождаться запрос на ввод значения аргумента.

К примеру при вводе количества точек для построения интерполяционного многочлена (это такая приближённая функция, высшая математика) надо как бы указать, что ввести надо именно количество точек.
Согласитесь, сообщение на экране "Введите количество точек" куда более понятное, чем "введите первый аргумент".

В самом скрипте аргументы просто так и сохраняются: arg1, arg2, arg3. Это помогает автоматизировать подгрузку разномастных скриптов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2017, 22:45

Как подключить и использовать LUA-скрипты в своих приложениях написанных на C++Builder (6)
По просьбе KTYJIX пишу небольшую инструкцию, как подключить и использовать этот замечательный язык...

Организовать хранение данных с применением контейнерного класса set
День добрый! Информационная система содержит сведения об отправлении поездов дальнего следования....

Сериализация класса, имеющего XElement
Всем привет. Столкнулся с тем, что для работы моей программы нужно использовать сериализацию в...

Конструктор (деструктор) у класса, не имеющего тип
Можно ли объявить и определить конструктор у класса, который не имеет тип? То есть у меня в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.