以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  获取字符串对应变量值?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58907)

--  作者:luodang2050
--  发布时间:2014/10/26 11:21:00
--  获取字符串对应变量值?

如题,定义了全局变量“_username”

现将全局变量以字符串格式传递给自定义函数,要求能根据string型“_username”返回其实际值,应该怎么实现?


--  作者:luodang2050
--  发布时间:2014/10/26 11:24:00
--  

Dim s As String = "owner Is null Or owner not Like 【var0】_UserOwner【var1】"

直接上例子把,如上字符串,怎么解析为“"owner Is null Or owner not Like ‘实际值’“


--  作者:有点甜
--  发布时间:2014/10/26 11:29:00
--  
 什么意思?你要截取 实际值 出来?
--  作者:luodang2050
--  发布时间:2014/10/26 11:29:00
--  
是的
--  作者:luodang2050
--  发布时间:2014/10/26 11:31:00
--  

【var0】_UserOwner【var1】

以上告诉程序:这是一个一个变量,然后程序就会把他解析为实际值,并替换掉


--  作者:有点甜
--  发布时间:2014/10/26 11:38:00
--  

1、截取字符串

 

Dim s As String = "owner Is null Or owner not Like 【var0】_UserOwner【var1】"

Dim st As Integer = s.IndexOf("】")
Dim en As Integer = s.LastIndexOf("【")
msgbox(s.SubString(st+1, En-st-1))

 

2、直接写 Dim s As String = "owner Is null Or owner not Like \'" & _UserOwner & "\'"

 

3、可以用动态编译的方式

 

http://www.foxtable.com/help/topics/1487.htm

 


--  作者:飞飞
--  发布时间:2014/10/26 11:50:00
--  
 版主太尽职了
--  作者:luodang2050
--  发布时间:2014/10/26 11:54:00
--  

第一种方式,通过字符串处理获取了”_UserOwner“,但是不知怎么转化为实际值?

第二种方式,因为应用环境不允许,无法采用

第三种方式,可行,但动态编译影响系统性能

甜甜版主,不知第一种方式能否解决?否则只能用第三种方式了


--  作者:有点甜
--  发布时间:2014/10/26 11:56:00
--  

 如果要用字符串当代码来用,就必须动态编译。

 

 不然,就只能是把代码写死,视你具体的问题而定。


--  作者:luodang2050
--  发布时间:2014/10/26 12:09:00
--  

Dim s As String = args(0)
Dim filter As String = s.Replace("【v0】_UserOwner【v1】",_UserOwner)
Return filter

哦,因为涉及到的变量不多,基本跟用户有关,所以做了这边函数做特殊情况解析,变通解决了

谢谢田版