Archiman86 发表于 2022-7-6 11:29:32

需要帮助删除词典

我试图从一堆文件中删除一个特定的词典。当文件中存在问题时,我们处理的客户的文档管理系统中存在问题。我正在尝试让它工作,以便打印它是否已经存在,或者是否已删除。现在我不断收到一个错误,上面写着:
 
以下是我目前掌握的情况:
 
提前感谢您的帮助!

Lee Mac 发表于 2022-7-6 11:48:24

我无法测试,但可能是这样的?
 

(defun c:GCI(/ newdictlist)
(cond ((setq newdictlist (dictsearch (namedobjdict) "GcImageDef_Dict"))

          (dictremove (namedobjdict) "GcImageDef_Dict")
          (princ "\nThe GcImageDef_Dict has been removed."))

       ((princ "\nGcImageDef_Dict does not exist.")))

(princ))

Archiman86 发表于 2022-7-6 12:03:37

李,谢谢!这很有效。碰巧,你能解释一下为什么它会为我返回那个错误吗。理论上,据我所知,这应该行得通。我的意思是,我的版本确实有效,但在打印后就出现了这个错误“…已经删除。”再次感谢!
 
-丹

Lee Mac 发表于 2022-7-6 12:23:58

这是一句话:
 

((dictremove (namedobjdict) "GcImageDef_Dict") (princ"\nThe GcImageDef_Dict has been removed."))

 
也就是说,好像是一个函数(当然不是)。
 
要在IF函数的THEN语句中封装两个表达式,需要使用类似PROGN的包装器:
 
3

JohnM 发表于 2022-7-6 12:31:43

我认为问题是你的IF语句(=nil newdictlist)应该是
(=newdictlist nil)
页: [1]
查看完整版本: 需要帮助删除词典