lostbalance 发表于 2013-10-26 21:55:00

如何将字符串赋值给变量

(setq lj (getstring "\n设置autocad文件夹路径: <e:\\documents\\autocad>\n"))
    (if (not lj) (setq lj "e:\\documents\\autocad"))

上面的函数运行后,如果不输入的话,lj的赋值失败,应该如何修改。

lengyunfeng 发表于 2013-10-27 08:45:54

把你的(if (not lj) (setq lj "e:\\documents\\autocad"))改成(if (= lj "") (setq lj "e:\\documents\\autocad"))就OK了。因为第一句即使什么都不输,光按了个回车键,你后一行代码中的if条件判断句结果都是nil,根本就不执行后面的默认赋值语句。

lengyunfeng 发表于 2013-10-27 10:36:06

lengyunfeng 发表于 2013-10-27 08:45 static/image/common/back.gif
把你的改成就OK了。因为第一句即使什么都不输,光按了个回车键,你后一行代码中的if条件判断句结果都是nil, ...

To二楼点评,getstring返回值的确是空串,我在二楼里的意思是if语句里的条件判断式返还结果是nil,也就是not 空串返回的是nil的意思。

llsheng_73 发表于 2013-10-27 15:19:31

沙发上的是正解,一般情况,如果IF不能按你的预期那样跳转,你可以在if前边用princ(vl-princ-to-string ...))
把那个关键的变量弄出来看看,这可以帮助你分析问题到底出在IF之前,还是IF条件判断上还是条件处理上

lostbalance 发表于 2013-10-27 21:07:59

感谢楼上的解答,分析的很透彻啊
页: [1]
查看完整版本: 如何将字符串赋值给变量