VB中字符串转换为变量名的问题??????

VB_zh 2006-12-26 03:13:36
zzz = 100
MsgBox StringCalc.Eval("zzz >= 50") 的值为假,怎样才能为真呢?

因为 zzz >= 50 的值本来是真,但在上式中因为有引号,
所以把zzz看作字符去比较,而不是变量名,

"zzz >= 50"是从别的文件中读来的字符串,所以引号去不掉的。

MsgBox StringCalc.Eval("zzz >= 50")式子中不去掉引号,
怎样做才能让程序把zzz看作变量名而不是字符串去做比较。
是在VB中做的。
...全文
1071 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
benyfeifei 2006-12-27
  • 打赏
  • 举报
回复
用读出来的数据替换这个确定的“zzz”字符串,然后使用scriptcontrol脚本控件就可以了。
VB_zh 2006-12-27
  • 打赏
  • 举报
回复
zzz是确定的,各位能说详细点吗?
Dunzip 2006-12-26
  • 打赏
  • 举报
回复
MsgBox StringCalc.Eval("zzz >= 50")
换为:
MsgBox StringCalc.Eval(Replace("zzz >= 50", "zzz", zzz))
yuanjian_530 2006-12-26
  • 打赏
  • 举报
回复
刚刚没注意看,
楼主,你读出来的字符串,
到底是变量名ZZZ是确定的,还是“=”是确定的,
要是知道哪个是确定的,就用哪个去区分并提取相应的值。
yuanjian_530 2006-12-26
  • 打赏
  • 举报
回复
把读出来的字符串,
先通过判断“=”去撮变量名跟值,
然后再做比较,这样就可以了。

VB_zh 2006-12-26
  • 打赏
  • 举报
回复
msgbox zzz>50的值为真了
MsgBox StringCalc.Eval("zzz >= 50") 的值还是假,
我程序中必须用到StringCalc.Eval("zzz >= 50"),只有zzz>50 不行的
VB_zh 2006-12-26
  • 打赏
  • 举报
回复
msgbox zzz>50的值为真了
MsgBox 的值还是假,
我程序中必须用到StringCalc.Eval("zzz >= 50"),只有zzz>50 不行的
yangao 2006-12-26
  • 打赏
  • 举报
回复
lngValue = 100
yangao 2006-12-26
  • 打赏
  • 举报
回复
把zq972那句改改不就行了

Dim lngValue As Long
lngValue = 50

Dim StringCalc As New ScriptControl
Dim codestr As String

StringCalc.Language = "VBScript"
StringCalc.Reset
codestr = "sub test() " & vbCrLf & _
"dim zzz " & vbCrLf & _
"zzz= " & lngValue & vbCrLf & _
"msgbox zzz>50 " & vbCrLf & _
"end sub"
StringCalc.AddCode codestr
StringCalc.Run "test"

Set StringCalc = Nothing
VB_zh 2006-12-26
  • 打赏
  • 举报
回复
用的是scriptcontrol,
我想要 StringCalc.Eval("zzz >= 50") 的值为真,只zzz>50 的值为真没有用的,
另外zzz的数据也是从别的文件中读来的,直接写成 "zzz=100 "不行的,
无论如何先谢谢 zq972 答复我的问题
VB_zh 2006-12-26
  • 打赏
  • 举报
回复
用的是scriptcontrol,真的就没有办法了吗?
zq972 2006-12-26
  • 打赏
  • 举报
回复
Dim StringCalc As New ScriptControl
Dim codestr As String
StringCalc.Language = "VBScript"
StringCalc.Reset
codestr = "sub test() " & vbCrLf & _
"dim zzz " & vbCrLf & _
"zzz=100 " & vbCrLf & _
"msgbox zzz>50 " & vbCrLf & _
"end sub"
StringCalc.AddCode codestr
StringCalc.Run "test"

Set StringCalc = Nothing
zzyong00 2006-12-26
  • 打赏
  • 举报
回复
你用的是scriptcontrol吧,eval里的变量zzz和你在程序中的zzz不是同一个变量,你永远得不到你想要的结果!
ruhong 2006-12-26
  • 打赏
  • 举报
回复
MsgBox StringCalc.Eval(iif(zzz>=50,true,false))
benyfeifei 2006-12-26
  • 打赏
  • 举报
回复
不管比较的方式怎么变,只要“zzz >= 50字符串中“zzz”是一个确定的字符串,就能使用替换的方法。
VB_zh 2006-12-26
  • 打赏
  • 举报
回复
to benyfeifei(狒狒)
zzz >= 50是从文件中读来的字符串,也是变的,也许是zzz <> 50,zzz <= 300什么的
我想让"zzz >= 50"中的zzz去取从另一文件中读来的数据作比较,例如:
读来zzz=100
100 >= 50
读来zzz=10
10 >= 50
VB_zh 2006-12-26
  • 打赏
  • 举报
回复
to chinsonlin073()
语法错误
benyfeifei 2006-12-26
  • 打赏
  • 举报
回复
zzz的数据是从别的文件中读来的,是变量,不能确定
---------------------
这个变量与你在程序里定义的zzz变量是什么关系?先把这个确定,然后再找方法。
chinsonlin073 2006-12-26
  • 打赏
  • 举报
回复
不明白
chinsonlin073 2006-12-26
  • 打赏
  • 举报
回复

MsgBox StringCalc.Eval("zzz>= 50")

-->改为:

MsgBox StringCalc.Eval("" & zzz & " >= 50")
加载更多回复(3)

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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