Главная страница
    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-1140519531
reboot
2006-02-21 13:58
2006.03.12
Запыхался. .. .. .. .


4-1135058350
френк
2005-12-20 08:59
2006.03.12
Кто меня запустил?


4-1135072687
Volf_555
2005-12-20 12:58
2006.03.12
Как вывести на экран все иконки из dll-файла?


2-1140890806
kreyl
2006-02-25 21:06
2006.03.12
Что внутри Variant?


1-1138704330
Counter Terranist
2006-01-31 13:45
2006.03.12
PageControl.TabPosition в ХР





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