Foxtable(狐表)用户栏目专家坐堂 → 请教如何判断表达式是否符合语法要求?


  共有18026人关注过本帖树形打印复制链接

主题:请教如何判断表达式是否符合语法要求?

帅哥哟,离线,有人找我吗?
易狐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
请教如何判断表达式是否符合语法要求?  发帖心情 Post By:2009/6/10 8:08:00 [只看该作者]

我们在用EVAL计算表达式的时候,一旦表达式不符合语法要求(也就是不能计算出结果的时候),系统会报错,比如:1、0做除数的时候    2、类似于这样1+2*3-      (也就是某一表达式计算符号前后少了一个数值)

如果能够进行表达式语法判断,就可以避免报错,没找到方法,谢谢赐教!

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/10 8:31:00 [只看该作者]

好像是没有办法的,除非我改程序


 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/6/10 9:15:00 [只看该作者]

以下是引用狐狸爸爸在2009-6-10 8:31:00的发言:

好像是没有办法的,除非我改程序


等您的好消息,否则的话,我只能在这里添加关闭错误提示语句来满足,其实也未尝不可,但是听您说一般不要用这个语句,所以还是希望您改一下程序(或者单改eval即可)


 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/6/10 9:32:00 [只看该作者]

这个问题我在做注册系统时也出现过,就是如果出现的注册码位数不够时或是解密返回的是乱码时都会出现系统报错,而不是我所设置的MessageBox对话框

 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/6/10 9:49:00 [只看该作者]

位数不够还好说,可以判断,乱码就不行,不过狐表有一个可以有一个忽略错误并继续运行代码的语句,在该代码段前面插入即可关闭错误提示,贺老师说不建议用,所以就没用,我得回去翻书查一查,都忘了!

 回到顶部
帅哥哟,离线,有人找我吗?
kylin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 F6
等级:狐精 帖子:3034 积分:19208 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/6/10 10:40:00 [只看该作者]

捕捉错误的,供你参考
 

n = "Round(" &  s &"," & r &")"

Dim y As Double 

try

y= Eval(n)

Catch ex As Exception

MessageBox.Show("表达式输入错误!", "提示", MessageBoxButtons.ok, MessageBoxIcon.Warning)

End try


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/6/10 10:44:00 [只看该作者]

以下是引用kylin在2009-6-10 10:40:00的发言:
捕捉错误的,供你参考
 

n = "Round(" &  s &"," & r &")"

Dim y As Double 

try

y= Eval(n)

Catch ex As Exception

MessageBox.Show("表达式输入错误!", "提示", MessageBoxButtons.ok, MessageBoxIcon.Warning)

End try

我回头试试看看,先谢谢了


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/10 10:58:00 [只看该作者]

这个捕捉错误的方法,可能对eval无效的。
我家一个判断功能吧。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/6/10 11:20:00 [只看该作者]

以下是引用狐狸爸爸在2009-6-10 10:58:00的发言:
这个捕捉错误的方法,可能对eval无效的。
我家一个判断功能吧。

好啊,期待中


 回到顶部
帅哥哟,离线,有人找我吗?
kylin
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 F6
等级:狐精 帖子:3034 积分:19208 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/6/10 11:23:00 [只看该作者]

以下是引用狐狸爸爸在2009-6-10 10:58:00的发言:
这个捕捉错误的方法,可能对eval无效的。
我家一个判断功能吧。

惭愧


 回到顶部