Главная страница
    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.011 c
2-1140616905
veb
2006-02-22 17:01
2006.03.12
Первая попытка подключения к инернету


15-1140039582
Petr V. Abramov
2006-02-16 00:39
2006.03.12
UPS APC от 1КВт 19U стойкомонтируемые


2-1140867234
oleguslu
2006-02-25 14:33
2006.03.12
Инкриментирование


1-1139215632
Stanislav
2006-02-06 11:47
2006.03.12
Memo сподсветкой синтаксиса


2-1140595862
Валерий
2006-02-22 11:11
2006.03.12
Добавление формы из Builder





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский