Foxtable(狐表)用户栏目专家坐堂 → 获取字符串对应变量值?


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

主题:获取字符串对应变量值?

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


加好友 发短信
等级:二尾狐 帖子:585 积分:5674 威望:0 精华:0 注册:2014/5/21 10:30:00
获取字符串对应变量值?  发帖心情 Post By:2014/10/26 11:21:00 [只看该作者]

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

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


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


加好友 发短信
等级:二尾狐 帖子:585 积分:5674 威望:0 精华:0 注册:2014/5/21 10:30:00
  发帖心情 Post By: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 ‘实际值’“


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 11:29:00 [只看该作者]

 什么意思?你要截取 实际值 出来?

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


加好友 发短信
等级:二尾狐 帖子:585 积分:5674 威望:0 精华:0 注册:2014/5/21 10:30:00
  发帖心情 Post By:2014/10/26 11:29:00 [只看该作者]

是的

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


加好友 发短信
等级:二尾狐 帖子:585 积分:5674 威望:0 精华:0 注册:2014/5/21 10:30:00
  发帖心情 Post By:2014/10/26 11:31:00 [只看该作者]

【var0】_UserOwner【var1】

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 


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


加好友 发短信
等级:三尾狐 帖子:618 积分:5097 威望:0 精华:1 注册:2014/8/7 6:56:00
  发帖心情 Post By:2014/10/26 11:50:00 [只看该作者]

 版主太尽职了

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


加好友 发短信
等级:二尾狐 帖子:585 积分:5674 威望:0 精华:0 注册:2014/5/21 10:30:00
  发帖心情 Post By:2014/10/26 11:54:00 [只看该作者]

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

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

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

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 11:56:00 [只看该作者]

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

 

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


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


加好友 发短信
等级:二尾狐 帖子:585 积分:5674 威望:0 精华:0 注册:2014/5/21 10:30:00
  发帖心情 Post By:2014/10/26 12:09:00 [只看该作者]

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

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

谢谢田版


 回到顶部