如何判断一个表达式是否合法?

sdjnjdxc 2013-01-23 11:30:37
比如: (a+b>c and c+d<f)
...全文
828 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-08-02
  • 打赏
  • 举报
回复
引用 15 楼 aabiao 的回复:
用type测试,不会出现错误的,如果表达式错误,会返回"U"
正解
sdjnjdxc 2013-08-02
  • 打赏
  • 举报
回复
在用户构建完公式后就进行检验,不能等到运行时。
sdjnjdxc 2013-08-02
  • 打赏
  • 举报
回复
引用 18 楼 xuzuning 的回复:
引用 15 楼 aabiao 的回复:
用type测试,不会出现错误的,如果表达式错误,会返回"U"
正解
认可
阿束 2013-08-01
  • 打赏
  • 举报
回复
运行的时候自动回弹出是否合法的字样的
aabiao 2013-07-30
  • 打赏
  • 举报
回复
用type测试,不会出现错误的,如果表达式错误,会返回"U"
jack_wang0823 2013-07-25
  • 打赏
  • 举报
回复
参考vfp查询设计器. 用类似的界面生成就可以了
sdjnjdxc 2013-07-24
  • 打赏
  • 举报
回复
在工资计算系统里,计算公式就是用户自己构建的,因为计算公式是变化的
jack_wang0823 2013-07-23
  • 打赏
  • 举报
回复
引用 6 楼 sdjnjdxc 的回复:
错误的是:(a+B>c and cd+ >e) 要用代码检查出用户写的这个公式是错误的
??? 什么情况, 严重到需要用户写表达式....... 即使是计算公式, 也不能让用户去写呀. 最笨的方法也是你用一系列的 下拉式列表给用户选择. 这样即使得不到正确的结果,也不会出现非法的表达式呀
sdjnjdxc 2013-07-19
  • 打赏
  • 举报
回复
因为这是计算公式,所以在用户构建这些公式时就要检测出错误来,不能在运行时捕捉
十豆三 2013-07-11
  • 打赏
  • 举报
回复
用我3楼代码
wwwwb 2013-07-11
  • 打赏
  • 举报
回复
引用 5 楼 sdjnjdxc 的回复:
表达式是用户写的计算公式,有可能出现错误。要在用户保存之前就要检查出错误来。 比如写成这样,就要提示出错,要用户重新写:(a+B>c and cd+ >e)
只有运行公式并捕获错误
spring_sw 2013-07-11
  • 打赏
  • 举报
回复
更正:上面第4行改为 if a1="a+b>c.and.c+d<f"
spring_sw 2013-07-11
  • 打赏
  • 举报
回复
假设用户在文本框text1内输入. a=thisform.text1.value a1=CHRTRANC(a," ","") if a1#"a+b>c.and.c+d<f" messagebox("表达式合法",0) else messagebox("表达式不合法",0) endif
sdjnjdxc 2013-07-11
  • 打赏
  • 举报
回复
错误的是:(a+B>c and cd+ >e) 要用代码检查出用户写的这个公式是错误的
sdjnjdxc 2013-01-24
  • 打赏
  • 举报
回复
表达式是用户写的计算公式,有可能出现错误。要在用户保存之前就要检查出错误来。 比如写成这样,就要提示出错,要用户重新写:(a+B>c and cd+ >e)
aabiao 2013-01-23
  • 打赏
  • 举报
回复
type("a>>>b")="U"表示不合法,其它如CNL等为合法。
十豆三 2013-01-23
  • 打赏
  • 举报
回复
Try * 尝试代码 (a+b>c and c+d<f) llSuccess=.T. Catch To oErr Messagebox(oErr.Message,16,'信息提示') llSuccess=.F. Endtry If llSuccess * 表达式合法 Else * 表达式不合法 Endif
ZJM84862915 2013-01-23
  • 打赏
  • 举报
回复
或: ?表达式 如显示为.T.为合法,如显示为.F.则为不合法。
ZJM84862915 2013-01-23
  • 打赏
  • 举报
回复
if 表达式 messagebox("表达式合法",0) else messagebox("表达式不合法",0) endif 例如: if (1+2>2 and 3+4<6) messagebox("表达式合法",0) else messagebox("表达式不合法",0) endif 运行结果:表达式不合法

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧