Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разбор формул, нужен совет. / 7 сообщений из 7, страница 1 из 1
20.01.2009, 12:29
    #35766790
Quasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор формул, нужен совет.
Есть формулы типа ($a + $b) * $c
у каждого параметра ($a $b $c) есть сво-ва, такие как его код, значение и тд.
Мне надо делать быстрый разбор этой формулы и подставлять в нее значения параметров, получая например так: (3 + 4) * 8, где $a=3, $b=4, $c=8
Потом я выражение (3 + 4) * 8 вычисляю методом eval компонента скрипт контрол.
...
Рейтинг: 0 / 0
20.01.2009, 15:12
    #35767265
Quasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор формул, нужен совет.
Мне надо:
1. Выбрать быстро из строковой формулы ($a + $b) * $c — параметры: $a, $b, $c.
2. Потом из БД получить значения для $a, $b, $c
3. Собрать формулу обратно, только уже без $a, $b, $c, вместо них числовые значения, т.е. (3 + 4) * 8.
4. Далее все просто — переадать (3 + 4) * 8 методу Eval()

Интересует как быстро реализовать пункт 1 и 3
ЗЫ: имена параметров могут состоять из более чем одной буквы, т.е. типа $monthSum, $calcRur и тд.
...
Рейтинг: 0 / 0
20.01.2009, 15:32
    #35767345
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор формул, нужен совет.
Quasar
ЗЫ: имена параметров могут состоять из более чем одной буквы, т.е. типа $monthSum, $calcRur и тд.

А может имена переменных сделать как в VB и использовать MS ScriptControl? Тогда все будет до смешного просто и ничего разбирать не надо...
...
Рейтинг: 0 / 0
20.01.2009, 17:38
    #35767746
Quasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор формул, нужен совет.
Можно подробней, не понял :(
...
Рейтинг: 0 / 0
20.01.2009, 23:55
    #35768274
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор формул, нужен совет.
Код: plaintext
1.
2.
3.
4.
Set sc = CreateObject("MSScriptControl.ScriptControl")
sc.Language ="vbscript"
fn = replace("($a + $b) * $c", "$", "")
sc.AddCode "a = 3" & vbcrlf & "b = 4" & vbcrlf  & "с = 8" 
debug.print sc.Eval(fn)
...
Рейтинг: 0 / 0
21.01.2009, 09:04
    #35768495
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор формул, нужен совет.
Antonariydebug.print sc.Eval(fn)[/src]

Угу. Причем можно работать задавая целые модули. В общем возможности там совсем не маленькие.
...
Рейтинг: 0 / 0
21.01.2009, 09:43
    #35768557
Quasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор формул, нужен совет.
Спасибо за идею, буду пробовать!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разбор формул, нужен совет. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]