Foxtable(狐表)用户栏目专家坐堂 → 内部函数用字符串数组作参数时数组会被拆为单字符数组,求助解决方法


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

主题:内部函数用字符串数组作参数时数组会被拆为单字符数组,求助解决方法

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


加好友 发短信
等级:童狐 帖子:265 积分:2399 威望:0 精华:0 注册:2011/10/21 17:07:00
内部函数用字符串数组作参数时数组会被拆为单字符数组,求助解决方法  发帖心情 Post By:2020/5/17 9:10:00 [只看该作者]

内部函数用字符串数组作参数时数组会被拆为单字符数组,求助解决方法,谢谢。

 

内部函数:

'Functions.Execute("ns_内部函数写在foxtable里的测试01",ta1)
msgbox("参数1的类型:" & TypeName(args(0)) & ",参数1数组(0),本应显示第1个字符串却只显示了第1个字符:" & args(0)(0))

 

 

按钮事件:

Dim ta1(2)
ta1(0) = "str0"
ta1(1) = "字符1"
ta1(2) = "字符2"
Functions.Execute("ns_内部函数写在foxtable里的测试01",ta1)

 

期待效果:显示 str0 这个字符串

实际效果:显示 str0的第1个字符 s

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:foxtable测试项目_内部函数用字符串数组作参数时数组会被拆为单字符数组

 

foxtable版本为2020.5.1官网下载安装的免费版

[此贴子已经被作者于2020/5/17 9:18:21编辑过]

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


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2020/5/17 11:09:00 [只看该作者]

一、自定义函数test代码:
Dim sz(args.Length) As String
msgbox(args(0))

二、函数调用:
Dim ta1(3)
ta1(0) = "str0"
ta1(1) = "字符1"
ta1(2) = "字符2"
Functions.Execute("test",ta1)

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/17 19:13:00 [只看该作者]

随便再传多一个参数即可

Dim ta1(2)
ta1(0) = "str0"
ta1(1) = "字符1"
ta1(2) = "字符2"
Functions.Execute("ns_内部函数写在foxtable里的测试01",ta1,True)

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


加好友 发短信
等级:童狐 帖子:265 积分:2399 威望:0 精华:0 注册:2011/10/21 17:07:00
  发帖心情 Post By:2020/5/18 20:47:00 [只看该作者]

以下是引用有点蓝在2020/5/17 19:13:00的发言:
随便再传多一个参数即可

Dim ta1(2)
ta1(0) = "str0"
ta1(1) = "字符1"
ta1(2) = "字符2"
Functions.Execute("ns_内部函数写在foxtable里的测试01",ta1,True)

谢谢蓝版,加多一个参数是什么原理呢图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/18 20:59:00 [只看该作者]

foxtable设计的时候就这样的,如果只有一个参数,且是数组,会被展开作为多个参数使用

Functions.Execute("ns_内部函数写在foxtable里的测试01",ta1)
等同
Functions.Execute("ns_内部函数写在foxtable里的测试01",ta1(0),ta1(1),ta1(2))

 回到顶部