Имя: Пароль:
1C
 
Парсинг формул
Ø
0 KS
 
22.09.00
19:50
А как-нибудь реализовывается сабж в 1С?
ЗЫ: сразу прошу прощения если глупый вопрос.
1 Anton
 
22.09.00
20:51
функцией Шаблон
2 Budda
 
22.09.00
23:33
Конечно можешь попробовать с использованием "обратной польской записи" ;о))) - компилятор чтоль пишешь ??;о)))))
3 Алекс
 
25.09.00
17:59
KS: Скажи, а действительно зачем тебе разбор строки в 1С?
Что действительно интерпретатор пишеш?
Если так, то определись с начала с типами строк(формулами) думаеш будеш сталкиваться, а потом построй разбор этих строк используя разбиение строки на токинги! :) По дробнее пиши! :)
4 Тот
 
25.09.00
18:40
А я писал интерпретатор с обратной польской... Потом потерял где-то. Если интерпретировать формульные строки, то можно, например, сотруднику начислять зарплату по формуле. И вообще много возникает очень удобных возможностей. Интерпретатор написать можно за недельку. Не очень сложно...
5 Дракон
 
25.09.00
18:54
Есть в конфе АКС такая штука но без скобок. Но за образец может сканать.
6 Sheridan
 
25.09.00
22:46
Ежели нужен интерпритатор формул, ежели его разрабатывать самому пожалуй дня за два можно сморганить. Тут пользоваться надобно обратной польской записью и рекурсивным спуском (для раскрытия скобок). Можно использовать функцию Шаблон. Она вычисляет выражение переданое ей в качестве параметра. Ежели надо использовать собственные макроподстановки имеет смысл использовать определенные метки перед макроподстановкой. Сначала сканируешь строку, выявляешь макроподставновки, потом сформированную строку передаешь на вычисление функции шаблон или EvalExpr
7 Dich
 
26.09.00
14:08
А через объект ClassContext из Rainbow Service не катит?
8 Александр
 
26.09.00
14:34
Наконец то вспомнили.А то будто и нет Rainbow.Примеры почитай пол года
ходят.
9 Chernik
 
27.09.00
03:09
2Дракон. Наверное самое слабое место в АКС- это интерпретация формул:-( В крупных проектах (где решено было ломать все, кроме приверженности к конструктору) используем Rainbow -не нарадуемся;-)
10 Sheridan
 
27.09.00
09:09
Ребята, Rainbow штука хорошая. Я надеюсь вы не думаете, что в Rainbow переписан весь язык 1С. Вряд ли. Так вот, функция classcontext выполняет программный код и на выход ничего не возвращает. Так что использовать его в в случае когда надобно вычислить формулу нет смысла. Да и смысла особого конфигуратор переность на пол. часть не вижу. Разве что только для отладки.
11 Full Dummy
 
27.09.00
09:00
А че это такое, обр. польская запись?
12 Sheridan
 
27.09.00
09:01
Кстати, когда я писал свой "Финансы и анализ" и примирял функции Rainbow к нему, они совсем никак не подошли.
13 Sheridan
 
27.09.00
09:05
Обратная польская запись вещь удобная при интерпритации выражений, т.к. для вычисления выражения необходимо соблюсти неявные правила вычисления, т.е. расставить паритеты. С помощью обратной польской записи можно выражение представить для вычисления в удобочитаемом виде. Например:
2+2*4+5, это будет 2425*++
А для интерпритации выражений со множеством скобок можно еще и рекурсивным спуском пользоваться.
14 Budda
 
27.09.00
10:19
2 Sheridan: Что то у меня толком не получилось развернуть твою польскую ;о)) (у меня получилась 2*5+4+2 - что-то не то ;о)))
Думаю что будет типа такого:
2+2*4+5 -> 2+24*+5 -> 224*++5 -> 224*+5+ - вот и ответ ;о)))
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.