Добрый день!
Посоветуйте пожалуйста простой и БЕСПЛАТНЫЙ парсер выражений типа "(4+6.0)/3 + 2.5 * 5" Хотелось бы у этой компоненты в идеале вызывать какой-нибудь метод типа calculate(string) и получать или стринг или дабл или лонг или эксепшн.. пофиг в принципе. На гугле компонент таких полно но все ИЛИ платные ИЛИ представляют из себя уже готовую апликуху. А мне нужно это узать в приложении. Спасибо заранее!
Re: Компонента для парсинга математических выражений
Здравствуйте, stalk, Вы писали:
S>Добрый день! S>Посоветуйте пожалуйста простой и БЕСПЛАТНЫЙ парсер выражений типа "(4+6.0)/3 + 2.5 * 5" Хотелось бы у этой компоненты в идеале вызывать какой-нибудь метод типа calculate(string) и получать или стринг или дабл или лонг или эксепшн.. пофиг в принципе. На гугле компонент таких полно но все ИЛИ платные ИЛИ представляют из себя уже готовую апликуху. А мне нужно это узать в приложении. Спасибо заранее!
Записывайте в обратной польской нотации. Реализация алгоритма — 1 день. Могу посодействовать баксов за двести
Мну думает. Значит. Ага.
Re: Компонента для парсинга математических выражений
Здравствуйте, stalk, Вы писали:
S>Добрый день! S>Посоветуйте пожалуйста простой и БЕСПЛАТНЫЙ парсер выражений типа "(4+6.0)/3 + 2.5 * 5" Хотелось бы у этой компоненты в идеале вызывать какой-нибудь метод типа calculate(string) и получать или стринг или дабл или лонг или эксепшн.. пофиг в принципе. На гугле компонент таких полно но все ИЛИ платные ИЛИ представляют из себя уже готовую апликуху. А мне нужно это узать в приложении. Спасибо заранее!
Здравствуйте, stalk, Вы писали:
S>Добрый день! S>Посоветуйте пожалуйста простой и БЕСПЛАТНЫЙ парсер выражений типа "(4+6.0)/3 + 2.5 * 5" Хотелось бы у этой компоненты в идеале вызывать какой-нибудь метод типа calculate(string) и получать или стринг или дабл или лонг или эксепшн.. пофиг в принципе. На гугле компонент таких полно но все ИЛИ платные ИЛИ представляют из себя уже готовую апликуху. А мне нужно это узать в приложении. Спасибо заранее!
Ищите на www.codeproject.com и вы найдете... (что-то около 5 решений там точно есть...)
Делай добро и бросай его в воду...
Re: Компонента для парсинга математических выражений
stalk пишет: > Добрый день! > Посоветуйте пожалуйста простой и БЕСПЛАТНЫЙ парсер выражений типа > "(4+6.0)/3 + 2.5 * 5" Хотелось бы у этой компоненты в идеале вызывать > какой-нибудь метод типа calculate(string) и получать или стринг или дабл > или лонг или эксепшн.. пофиг в принципе. На гугле компонент таких полно > но все ИЛИ платные ИЛИ представляют из себя уже готовую апликуху. А мне > нужно это узать в приложении. Спасибо заранее!
Гм.. Это скорее в "коллеги, улыбнитесь".
Короче, готовь пиво:
OleDbCommand __command = new OleDbCommand();
OleDbConnection __connection = new OleDbConnection();
__connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\;Extended Properties=dBASE IV";
__command.Connection = __connection;
__connection.Open();
__command.CommandText = "select (4+6.0)/3 + 2.5 * 5 as result";
DataReader __reader = __command.ExecuteReader();
//.... ну, дальше надеюсь понятно???
В класс сам обернешь???
Posted via RSDN NNTP Server 2.1 beta
Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[2]: Компонента для парсинга математических выражений
Здравствуйте, stalk, Вы писали:
S>Добрый день! S>Посоветуйте пожалуйста простой и БЕСПЛАТНЫЙ парсер выражений типа "(4+6.0)/3 + 2.5 * 5" Хотелось бы у этой компоненты в идеале вызывать какой-нибудь метод типа calculate(string) и получать или стринг или дабл или лонг или эксепшн.. пофиг в принципе. На гугле компонент таких полно но все ИЛИ платные ИЛИ представляют из себя уже готовую апликуху. А мне нужно это узать в приложении. Спасибо заранее!
MS Script Control
MSScriptControl.ScriptControlClass ctrl = new MSScriptControl.ScriptControlClass();
ctrl.Language = "javascript";
object value = ctrl.Eval("(4+6.0)/3 + 2.5 * 5");
+ Можно еще и функции свои писать:
MSScriptControl.ScriptControlClass ctrl = new MSScriptControl.ScriptControlClass();
ctrl.Language = "javascript";
ctrl.AddCode("function Sqr(a){return a*a;}");
object value = ctrl.Eval("1+1+6/2-1+Sqr(10)");
Re: Компонента для парсинга математических выражений
Re: Компонента для парсинга математических выражений
От:
Аноним
Дата:
10.08.07 12:30
Оценка:
Здравствуйте, stalk, Вы писали:
S>Добрый день! S>Посоветуйте пожалуйста простой и БЕСПЛАТНЫЙ парсер выражений типа "(4+6.0)/3 + 2.5 * 5" Хотелось бы у этой компоненты в идеале вызывать какой-нибудь метод типа calculate(string) и получать или стринг или дабл или лонг или эксепшн.. пофиг в принципе. На гугле компонент таких полно но все ИЛИ платные ИЛИ представляют из себя уже готовую апликуху. А мне нужно это узать в приложении. Спасибо заранее!
В книге Герберт Шилдт "Полный справочник по C#" есть пример на эту тему