![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Doga |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 20.12.2007 Где: Россия, Обнинск Репутация: нет Всего: нет |
Всем привет!
Хотел бы поставить себе современную замену RxLib - JEDI VCL. Однако, из-за не достаточно подробного хэлпа не понятно, есть ли в составе Jedi какой либо парсер математитечских выражений? И если есть - как зовётся? Или искать какой то другой компонент? Что порекомендуете? |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Если ставите JVCL, то у вас будет и JCL. Сделайте поиск файлов со словом "parser". Много интересного найдёте. В частности JclExprEval.pas.
Да и в хэлпе прям тема такая есть: "Expression Evaluation". И даже демки. Например: jcl\examples\common\expreval\ExprEvalExample.dpr. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Doga |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 20.12.2007 Где: Россия, Обнинск Репутация: нет Всего: нет |
А я, дубина, "parcer" искал...
![]() CodeMonkey, спасибо! ![]() Это сообщение отредактировал(а) Doga - 12.1.2009, 17:25 |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
+1 Там есть несколько вариаций классов умеющих считать мат. выражения. От простого парсера вычисляющего одно выражение, до класса компилирующего выражение в исполняемый код и работающего со списком таких выражений. В справке JCL они достаточно неплохо описаны. В выражениях могут использоваться следующие операции(по приоритету): 1) (highest) not bnot(bitwise) +(unary) -(unary) (level 3) 2) * / div mod and band(bitwise) shl shr (level 2) 3) +(binary) -(binary) or xor bor(bitwise) bxor(bitwise) (level 1) 4) (lowest) < <= > >= cmp = <> (level 0) Плюс есть возможность регистрировать произвольные функции. Хочу упомянуть одну досадную недоработку с которой я дважды сталкивался при попытке использования этого парсера. JCL не умеетобрабатывать возведение в произвольную степень. Ссылка по теме: Мини описание JCL на русском. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |