zhangcan0515 发表于 2024-4-19 12:31:12

读取列表资料库的自定义函数应用出错?

(defun read_list_data (df / bt fp dt1 dt2)
(setq bt '())                                ;建立空表
(if (setq fp (open df "r"))                ;以读取模式开启指定的档案
    (progn                                        ;如果档案开启成功
      (setq dt1 (read-line fp))      ;读取第一行
      (while dt1                                ;当有资料读入时...
        (setq dt2 (read dt1))                ;去除外层双引号
        (if (= (type dt2) 'LIST)        ;判断是不是串列资料
          (setq bt (append bt (list dt2))) ;若是,将资料项加入串列中
        )
        (setq dt1 (read-line fp))        ;读取下一行
      )
      (close fp)                                ;关闭档案
    )
    (princ (strcat "\nFailed open file: " df " !!!\n"))
                                        ;显示无法开启档案的讯息
)
(eval bt)                                ;传回结果串列
)


应用的时候出现错误

(setq db1 (read_list_data "d:\\lisp\\block_spec.txt"))

; 错误: 函数错误: "DSK001"


请问各位老师是哪里错误了

自贡黄明儒 发表于 2024-4-19 12:31:13

试一下,下面的程序是否能正常运行
(defun read_list_data (df / BT DT1 DT2 FP)
(setq bt nil)
(if (setq fp (open df "r"))
    (progn
      (while (setq dt1 (read-line fp))
      (setq dt2 (read dt1))
      (setq bt (append bt (list dt2)))
      )
      (close fp)
    )
)
bt
)

zhangcan0515 发表于 2024-4-19 15:36:23

自贡黄明儒 发表于 2024-4-19 12:31
试一下,下面的程序是否能正常运行

可以了,谢谢黄老师!
页: [1]
查看完整版本: 读取列表资料库的自定义函数应用出错?