casd 发表于 2012-11-2 12:31:44

lisp中的read函数出差,求助

程序是用来读取文本文件建立图层的。xjtc1结果异常,xjtc2就是正常的
cgy_图层1,cgy_图层2的区别就是(151 结-梁 4 dashed 梁线)(151 结-梁1 4 dashed 梁线)
                               (156 结-梁-垂直编号 120 continuous 垂直梁标注)(156 结-梁-垂直编号1 120 continuous 垂直梁标注)
各加了个“1” 在后面

但跟踪变量 varlist,lay_line就会发现执行到这来时异常。这两个变量是这样来的
(setq varlist (read-line fopen))这个是读文本文件的
(setq lay_line (read varlist))   这个将变量varlist转换成表。
同样的程序,为什么文本文件就改个字符,其它不动,执行结果会出错呢。

本人怀疑是 read函数有问题, 但向谁反应呢?

守仁格竹GM 发表于 2013-5-4 07:59:17

我也遇到过 确实有问题 重置重装CAD都不行

ZZXXQQ 发表于 2013-5-4 08:44:43

;不是read函数的问题,是中文原子的问题。将程序局部改成:
;......
   (setq i 1)
   (repeat (strlen varlist)
    (setq txt (substr varlist i 1))
    (cond
   ((= txt "(") (setq lay_line "(\""))
   ((= txt ")") (setq lay_line (strcat lay_line "\")")))
   ((= txt " ") (setq lay_line (strcat lay_line "\" \"")))
   (T (setq lay_line (strcat lay_line txt))
    )
    (setq i (1+ i))
   )
   (setq lay_line (read lay_line))
;......
页: [1]
查看完整版本: lisp中的read函数出差,求助