В Delphi XE У меня есть рутина, которая разрушает некоторые сложные формулы для бинарного результата формулы, как это:Как я могу оценить строку, содержащую двоичную формулу в Delphi?
(1 & ((1 | 0) | 1) & 1)
Поскольку мое приложение на SQL Server я могу легко сделать SELECT (1 & ((1 | 0) | 1) & 1) Поскольку Result и SQL Server будут оценивать логику, чтобы дать мне результат 1 или 0.
Я не могу найти родной метод Delphi для представления строкового представления бинарной формулы и оценки его.
Я заглянул в Live Bindings. Оценщики добавили в XE, но любая попытка оператора и/или запускает ошибки парсера, поэтому я считаю, что это скорее математический процесс.
Я также посмотрел на несколько парсеров, но никто, действительно, не выпрыгнул на меня.
Так как я могу сделать что-то подобное:
iSomeInt: = Evaluate ('(1 & ((1 | 0) | 1) & 1)');
BTW .. Я могу полностью переработать формулу и использовать ее и/или вместо & | .. Это было просто для того, чтобы она работала с SQL Server.
Посмотрите здесь: http://blogs.embarcadero.com/ao/2012/04/13/39249 –
JCL TEvaluator выглядит хорошо. см. этот предыдущий вопрос SO http://stackoverflow.com/questions/13592136/which-functions-are-predefined-in-jcl-tevaluator-class – Sam
Эксперт по оценке JCL действительно хорош. Хотя он плохо обрабатывает десятичные разделители и не имеет оператора мощности. Обе эти упущения я исправил в своей собственной ветке, но могу ли я убедить любого из разработчиков JEDI сделать это? Могу я черт! Разочарование, когда проекты с открытым исходным кодом умирают. И нет очевидного способа вернуть его к жизни. –