Преобразование строки в выражение

Обсуждение вопросов по разработке программ в среде продуктов копорации "Progress Software"
A_Alex
Старожил
Сообщения: 80
Зарегистрирован: 16 фев 2011, 22:39

Преобразование строки в выражение

Сообщение A_Alex » 07 дек 2012, 14:29

Добрый день. Подскажите кто знает в таком вопросе.

Возможно ли как-то преобразовать строку в выражение, т.е.

DEF VAR iStr AS CHAR NO-UNDO.
DEF VAR oResult AS INTEGER NO-UNDO
iStr = "1 + 2".

Далее я хочу некое такое преобразование:

{oResult = iStr}

т.е. в итоге oResult = 3.

Аватара пользователя
dmi
Старожил
Сообщения: 1523
Зарегистрирован: 27 сен 2001, 03:00
Откуда: Москва

Re: Преобразование строки в выражение

Сообщение dmi » 07 дек 2012, 14:58

/dmi

http://pro4gl.ru - 4gl блог

Аватара пользователя
dmikai
Старожил
Сообщения: 517
Зарегистрирован: 20 сен 2006, 23:19
Откуда: Рига, Латвия

Re: Преобразование строки в выражение

Сообщение dmikai » 07 дек 2012, 15:00

Варианта четыре:

1. самому написать крутой парсер.
2. делать вызов перл или питон скрипта
3. использовать динамический query. но там мало чего можно сделать
4. использовать динамическую генерацию и компиляцию программ

Аватара пользователя
dmi
Старожил
Сообщения: 1523
Зарегистрирован: 27 сен 2001, 03:00
Откуда: Москва

Re: Преобразование строки в выражение

Сообщение dmi » 07 дек 2012, 15:43

Более полная версия статьи

http://knowledgebase.progress.com/artic ... cle/P39990
/dmi



http://pro4gl.ru - 4gl блог

fishsbones
Новичок
Сообщения: 2
Зарегистрирован: 05 ноя 2009, 14:32

Re: Преобразование строки в выражение

Сообщение fishsbones » 07 дек 2012, 21:21

Если работаем под linux то можно вызывать через input through консольный калькулятор с заданным выражением.
И считывать результат.
Хотя в общем то это тоже самое что вызывать скрипты на perl :)

A_Alex
Старожил
Сообщения: 80
Зарегистрирован: 16 фев 2011, 22:39

Re: Преобразование строки в выражение

Сообщение A_Alex » 16 дек 2012, 12:48

Спасибо огромное всем :D