以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]动态函数问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102912)

--  作者:lzzhx
--  发布时间:2017/6/27 16:23:00
--  [求助]动态函数问题
请教老师,下面的动态函数执行错误,请教如何修改
_XTGJXX是一个公用字典,有值 


Functions.remove("xtsz")
dim code as string = ""
for each k as string in _XTGJXX.keys
    code = code & k & " = \'" & _ZTGJXX(k) & "\'" & vbcrlf
    code = code & "saveconfigvalue(\'sz_" & k & "\',\'" & _XTGJXX(k) & "\')" & vbcrlf
next
functions.add("xtsz",code)
functions.complie()
function.execute("xtsz")

编译错误:应为表达式
错误代码: zsjk_Name = \'fjzyywglsjk\'

--  作者:lzzhx
--  发布时间:2017/6/27 16:25:00
--  
zsjk_Name 是公用代码中定义的变量,目的是根据字典中的值,给与字典键同名的变量赋值
--  作者:lzzhx
--  发布时间:2017/6/27 16:26:00
--  
编译错误:应为表达式
错误代码: zsjk_Name = \'fjzyywglsjk\'

找不到自定义函数 “xtsz" !

--  作者:lzzhx
--  发布时间:2017/6/27 17:19:00
--  
帮助里的动态函数的例子在第一次执行时正常,再执行时就出错,提示”已添加了具有相同键值的项
--  作者:lzzhx
--  发布时间:2017/6/27 17:20:00
--  
有没有老师给解答一下
--  作者:有点色
--  发布时间:2017/6/27 17:38:00
--  

要用双引号

 

code = code & k & " = """ & _ZTGJXX(k) & """" & vbcrlf


--  作者:lzzhx
--  发布时间:2017/6/27 18:07:00
--  
谢谢老师,改为双引号后,我加了个消息框看了一下code的值,第一个循环中值是正常的,但从第二个循环开始,K值等于号后面是一个双引号, _ZTGJXX(k) 跑到下一行了,以后的都这样,最后提示  字符串常量必须以双引号结束

在没有改双引号前,这个问题就存在,请老师再看看

Functions.remove("xtsz")
dim code as string = ""
for each k as string in _XTGJXX.keys
    code = code & k & " = """ & _ZTGJXX(k) & """" & vbcrlf
    code = code & "saveconfigvalue(" & """sz_" & k & """,""" & _XTGJXX(k) & """)" & vbcrlf
next
messagebox.show(code)
functions.add("xtsz",code)
functions.complie()
function.execute("xtsz")

--  作者:有点色
--  发布时间:2017/6/27 18:40:00
--  

截图说明,上传例子说明。