以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于自定义函数的判断  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101685)

--  作者:zhsenchzhi
--  发布时间:2017/6/5 15:41:00
--  关于自定义函数的判断
在执行 自定义函数之前, 我想先判断一下  某自定义函数是否存在,如果存在,就执行,如果不存在,就不执行,请问该怎样判断呢?
--  作者:有点色
--  发布时间:2017/6/5 15:43:00
--  

 比较麻烦

 

try
    Functions.add("test", "")
    Functions.remove("test")
    msgbox("不存在,继续执行")
catch ex As exception
    msgbox("已存在")
End try
[此贴子已经被作者于2017/6/5 15:43:05编辑过]

--  作者:zhsenchzhi
--  发布时间:2017/6/5 16:54:00
--  
难道没有别的更好的方法了吗?
--  作者:有点色
--  发布时间:2017/6/5 17:41:00
--  
 没有提供对应方法。
--  作者:zhsenchzhi
--  发布时间:2017/7/4 23:35:00
--  
下面这种方法来判断 自定义函数是否存在,好像不行呀
try
    Functions.add("test", "")
    Functions.remove("test")
// 执行到这里的时候, 即使  test 函数 已经存在, 也不会抛出异常, 仍然会执行到这里
    msgbox("不存在,继续执行")
catch ex As exception
    msgbox("已存在")
End try

请问还有别的方法吗?

--  作者:程兴刚
--  发布时间:2017/7/5 4:20:00
--  
既然是开发者自定义的,为何要判断是否存在?
--  作者:有点甜
--  发布时间:2017/7/5 8:34:00
--  
以下是引用zhsenchzhi在2017/7/4 23:35:00的发言:
下面这种方法来判断 自定义函数是否存在,好像不行呀
 
// 执行到这里的时候, 即使  test 函数 已经存在, 也不会抛出异常, 仍然会执行到这里
 

请问还有别的方法吗?

 

只有动态添加的,才能判断。你通过菜单添加的函数,无法判断。


--  作者:zhsenchzhi
--  发布时间:2017/7/5 10:34:00
--  
可是我现在需要这样的功能,该怎样解决呢?需要判断一下, 原来是否有某个 函数, 如果不判断, 直接指向, 即使 放在 try  catch  里面,仍然会报错, 有没有方法让他不报错呀?
--  作者:有点甜
--  发布时间:2017/7/5 10:36:00
--  

没办法,foxtable没有开放对应的功能。

 

你可以用一个表,记录你已经添加的函数的名称,直接查表就好了啊。


--  作者:nblwar
--  发布时间:2017/7/5 14:46:00
--  
其实就是自定义一个集合(List(Of String)),每添加删除一个自定义函数就更新这个集合,最后用Contains方法判断