- 积分
- 6483
- 明经币
- 个
- 注册时间
- 2002-4-17
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2002-9-18 10:28:00
|
显示全部楼层
见内:
本帖最后由 作者 于 2002-9-18 10:28:43 编辑
(defun c:demo ()
(makelines (GetPtlist (cadr (mc_getfile "c:/test.txt"))))
(princ)
)
;;; 上式中用到自定义的函数
;;;getptlist作用: "2,4 3,5 2,6 5,7 4,9 4,7"
;;;->((2 4) (3 5) (2 6) (5 7) (4 9) (4 7))
(defun GetPtList (str / formatptlist )
;;formatptlst: (2 4 3 5 2 6 5 7 4 9 4 7)
;;->((2 4) (3 5) (2 6) (5 7) (4 9) (4 7))
;; 为简单起见这个函数用了递归,如果点极多列表很长,你自行改写一下以免溢出
(defun FormatPtList (lst)
(if lst
(cons (list (car lst) (cadr lst))
(FormatPtList (cddr lst))
)
nil
)
)
(setq str (vl-string-translate "," " " str))
(setq str (strcat "(" str ")"))
(formatptlist (read str))
)
(defun makelines (ptlst)
(command "_.line")
(mapcar ''((pt) (command "_non" pt)) ptlst)
; 此处的non临时屏蔽掉捕捉, 避免系统变量osmode设置
(command ""); 如果闭合,改为(command "close")
)
;;;此函数载于本站明经道通函数中
;;;=============================================================
;;;mc_getfile
;;;读取文件并按行将文件转换为表
;;;参数
;;;files:文本文件名,如未指定路径则自动在搜索路径中查找文件
;;;返回值
;;;返回一个表,文件中一行被转换为表中的一个项,如果文件不存在,则返回nil
;;;示例
;;;(mc_getfile "tyl.ini")
;;;注意
;;;无
;;;作者
;;;郑立楷
(defun mc_getfile (files / tmplst x fn)
(setq files (findfile files))
(if files
(progn
(setq fn (open files "r"))
(while (setq x (read-line fn))
(setq tmplst (append tmplst (list x)))
)
(close fn)
tmplst
)
nil
)
)
|
|