现在的位置: 首页 > 综合 > 正文

返回比较表达式比较结果/计算表达式值的函数

2013年09月01日 ⁄ 综合 ⁄ 共 1706字 ⁄ 字号 评论关闭

表达式

 

比较表达式的函数:
C/C++ code
//====================================================================
// 函数: f_exp_compare
//--------------------------------------------------------------------
// 描述: 返回比较表达式比较结果
//--------------------------------------------------------------------
// 参数:
//     value    string    as_str    计算表达式,如 60 < 70
//--------------------------------------------------------------------
// 返回值:  string   比较表达试的结果 1为真,0为假,-1为表达式错误
//====================================================================
String ls_retVal
datastore lds_evaluate
lds_evaluate = CREATE datastore
lds_evaluate.Create('release 8;~r~ntable()')
ls_retVal = lds_evaluate.Describe("evaluate('" + "if(" + as_str + ", 1, 0)" + "', 1)")
DESTROY lds_evaluate
IF ls_retVal = '!' THEN ls_retval = '-1'
RETURN ls_retVal

计算表达式值的函数:
C/C++ code
//====================================================================
// 函数: f_exp_ret
//--------------------------------------------------------------------
// 描述: 返回计算表达式的值
//--------------------------------------------------------------------
// 参数:
//     value    string    as_str    计算表达式,如 2 * (3+5)
//--------------------------------------------------------------------
// 返回值:  string   计算表达式的结果值,如表达式不正确,返回'FALSE'
//====================================================================
String ls_RetVal
datastore lds_evaluate
lds_evaluate = CREATE datastore
lds_evaluate.Create('release 8;~r~ntable()')
ls_RetVal = lds_evaluate.Describe("evaluate('" + as_str + "', 1)")
DESTROY lds_evaluate
IF ls_RetVal = '' OR ls_RetVal = '!' THEN ls_RetVal = 'FALSE'
RETURN ls_RetVal

示例:
C/C++ code
String ls_Exp1, ls_Exp2, ls_Ret1, ls_Ret2

ls_Exp1 = '69 < 70'
ls_Ret1 = f_exp_compare(ls_Exp1)
ls_Exp2 = '60 * (20 + 3)'
ls_Ret2 = f_exp_ret(ls_Exp2)
MessageBox('', ls_Exp1 + ' --> ' + ls_Ret1 + '~r~n' +&
                    ls_Exp2 + ' --> ' + ls_Ret2)

 

抱歉!评论已关闭.