Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Evaluate expression. Как выполнить выражение из строки??   Найти похожие ветки 

 
VIB ©   (2006-02-06 03:16) [0]

господа, необходдимо решить задачу, элементарно решаемую в других языках с помошбю функции eval. в двух словах, упрощенная задача такова: имеется символьная строка с неким выражением..например,

"Table1Field1.Value+Table1Field2.Value"

да хотя бы

"3+2"

вопрос: каким образом получить значение выражения в строке??? благодарю заранее..


 
Джо ©   (2006-02-06 03:24) [1]

> , элементарно решаемую в других языках

Тут опущено всего одно слово, зато ключевое. Именно: в других интерпретируемых языках. Дефли же не интерпретатор, но компилятор.


 
Defunct ©   (2006-02-06 05:08) [2]

> вопрос: каким образом получить значение выражения в строке??? благодарю заранее..

Сразу Вас разочарую..
Стандартного компонента, который способен решить Вашу задачу - нет.

Но если Ваш интерес сводится не к поиску готового компонента, тогда, несомненно, на этом форуме найдутся желающие и имеющие возможность Вам помочь.


 
TUser ©   (2006-02-06 05:22) [3]

См. алгоритм Дейкстры. Их у него несколько, но тебе нужено приведение выражение к постфиксной (обратной польской) записи. Или другой аналогичный алгоритм.

Из Delphi понадобятся FindComponent и модуль TypInfo.

Есть также FastScript, который твою задачу решит, но он платный. Есть триал. Кряков к нему нет и не планируется. Есть еще бесплатный PascalScript, реашет ли он твою задачу - не знаю. Еще есть TJvInterpretator, но он глючный.


 
буржуй   (2006-02-06 05:50) [4]

у меня тут встала аналогичная задача, но несколько проще +)
есть "логическое" выражение, стоит задача посчитать результат. к примеру
(0 and 1) or (1 and 1) = ... и т.д.
само выражение формируется пользователем (только за вместо 0/1 пишутся индексы условий из списка условий), значения 0 / 1 подставляются динамически на этабе обработки правила. может конечно есть более просто способ хранить подобные вырожения и разрешать их...


 
TUser ©   (2006-02-06 06:03) [5]

> у меня тут встала аналогичная задача

Аналогично - см. [3]


 
Leonid Troyanovsky ©   (2006-02-06 08:05) [6]


> TUser ©   (06.02.06 05:22) [3]

> Есть также FastScript, который твою задачу решит, но он
> платный. Есть триал. Кряков к нему нет и не планируется.
>  Есть еще бесплатный PascalScript, реашет ли он твою задачу
> - не знаю. Еще есть TJvInterpretator, но он глючный.


Есть бесплатный ScriptControl от MS, безглючный.

--
Regards, LVT.


 
TUser ©   (2006-02-06 08:09) [7]


> Leonid Troyanovsky ©   (06.02.06 08:05) [6]

Тут, кажется, требуется доступ к объектам Delphi и их свойствам. Разве майкрософтовское решение это может?


 
Leonid Troyanovsky ©   (2006-02-06 08:30) [8]


> TUser ©   (06.02.06 08:09) [7]

> Тут, кажется, требуется доступ к объектам Delphi и их свойствам.
>  Разве майкрософтовское решение это может?


Конечно. Это ж ActiveX, и для него дельфи сделает TScriptControl,
с помощью которого можно, например, (Language=VBScript):
Caption := ScriptControl1.Eval("3+2").

У Анатолия Подгорецкого на сайте в разделе "Весь Тенцер" есть статья
о использовании SC в дельфийских приложениях.

--
Regards, LVT.


 
Lamer@fools.ua ©   (2006-02-06 08:53) [9]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=737


 
VIB ©   (2006-02-06 22:07) [10]

спасибо, господа.. метод evaluate компонента FastScript полностью удовлетворил мои нужды.. ввиду ограниченных сроков,с другими просто нет времени разбираться.. всем большое спасибо..



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.022 c
9-1126260217
thr3ad
2005-09-09 14:03
2006.03.12
GLScene персонаж проходит сквозь объекты


15-1140099215
Loginov Dmitry
2006-02-16 17:13
2006.03.12
Синхронизация таблиц БД


1-1139351046
Ани
2006-02-08 01:24
2006.03.12
Как динамически создавать анимированные курсоры из своих картинок


2-1140421439
VanDet
2006-02-20 10:43
2006.03.12
Помоги gj;fkeqcnf Freeker


15-1140002176
Rentgen
2006-02-15 14:16
2006.03.12
Для каждого юзера своя строка.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский