Russian Qt Forum

Qt => Общие вопросы => Тема начата: mokynis от Март 18, 2016, 12:33



Название: QString с формулой
Отправлено: mokynis от Март 18, 2016, 12:33
подскажите, есть ли возможность выполнить записанную в QString формулу. Что-то типа:
QString aa="10/5+";
int bb=4;
int rezult=<aa><bb> - должно получиться 10/5+4
Заранее благодарен


Название: Re: QString с формулой
Отправлено: gil9red от Март 18, 2016, 12:36
Сложить строку с числом или прямо выполнить?
По должно получить у вас первое, по смыслу, вроде бы, как второе :)


Название: Re: QString с формулой
Отправлено: mokynis от Март 18, 2016, 13:25
идея такая: имеется несколько типов данных; каждый тип должен обсчитываться по-своему в зависимости от введенных в форму данных (1 тип, допустим, считается, как 5*на значение в поле формы "поле1", 2 тип, как "поле2"/(22-"поле3") и т. п. ). При этом числа в формулах расчетов могут иногда корректироваться (не 5 и 22 будет через месяц, а 6 и 21)
Хотелось бы хранить формулы в базе (типа "field2/(22-field3)) и использовать их для расчетов. Содержимое полей формы перевести в переменные-элементарно, а вот остальное...


Название: Re: QString с формулой
Отправлено: Bepec от Март 18, 2016, 13:58
По сути надо просто обработать строку, главное определить необходимые возможности, дабы не зависнуть в разработке этой :D


Название: Re: QString с формулой
Отправлено: kambala от Март 18, 2016, 14:12
чтоб не возиться с парсером математических выражений, можно заюзать QtScript например. хотя, если там элементарные расчеты (арифметические операции без скобок и функций), то руками довольно быстро будет.


Название: Re: QString с формулой
Отправлено: mokynis от Март 18, 2016, 14:45
ОК, всем спасибо, все понял