半听可乐 发表于 2012-7-26 12:06:02

编程申请:从.lsp文件中提取快捷键列表

本帖最后由 半听可乐 于 2012-7-27 09:22 编辑

可以编写这样的程序吗?从一个含有很多lsp程序的.lsp文件里提取出含有符号“★”的整行文本(最好能舍去“★”前面的字符),然后生成一个“快捷键.txt”文档,文档内容为以“★”开头的快捷键列表

.lsp文件中内容(同附件):
;;;-----------------------------------
;;;★DB_REFEDITS退出参照编辑并保存
;;;-----------------------------------
(DEFUN C:DB_REFEDITS ()
(COMMAND "refclose" "s") (PRINC))

;;;-----------------------------------
;;;★DB_REFEDITS退出参照编辑并保存
;;;-----------------------------------
(DEFUN C:DB_REFEDITD ()
(COMMAND "refclose" "d") (PRINC))

运行程序后产生“快捷键.txt”
★DB_REFEDITS退出参照编辑并保存
★DB_REFEDITS退出参照编辑并保存

yjr111 发表于 2012-7-26 12:06:03

;;;;;;;;;;;;;;;;;提取快捷命令
(defun c:tqml (/ fname Lst name)
(setq fname (getfiled "选择lsp文件" "" "lsp" 4))
(setq f (open fname "r"))
(while (setq str (read-line f))
    (if        (setq posi (vl-string-search "★" str))
      (setq lst (cons (substr str (1+ posi)) lst))
    )
)
(setq ff1 (open "c://命令列表.txt" "w"))
(foreach str lst
    (write-line str ff1)
)
(close ff1)
(startapp "notepad" "c://命令列表.txt")
(princ)
)

革天明 发表于 2012-7-26 12:22:49

前排占座,应该不难

xyp1964 发表于 2012-7-26 12:59:55

直接读取命令

半听可乐 发表于 2012-7-26 13:05:35

xyp1964 发表于 2012-7-26 12:59 static/image/common/back.gif
直接读取命令

必须得用院长的工具箱~~~

psdcdr 发表于 2012-7-26 13:33:55



EXPRESS自带了一个小程序lspsurf.exe可实现楼主想要的功能




xshrimp 发表于 2012-7-26 13:44:26

(defun gps->file-2strlst (fn / f line re)   
(if(and(= (type fn) 'STR) (findfile fn))
(progn
    (setq f (open (findfile fn) "r"))
    (while (setq line (read-line f))
      (setq re (cons line re ))
    )
    (close f)
    (reverse re)   
)
)   
)

(setq filestr (gps->file-2strlst "c:\\1.lsp"))   
(vl-remove-if-not '(lambda(x)(wcmatch x ";;;★*") ) filestr)

半听可乐 发表于 2012-7-26 14:17:07

xshrimp 发表于 2012-7-26 13:44 static/image/common/back.gif
(defun gps->file-2strlst (fn / f line re)   
(if(and(= (type fn) 'STR) (findfile fn))
(pr ...

这个程序快捷键是什么?怎么用~?

半听可乐 发表于 2012-7-26 14:18:33

psdcdr 发表于 2012-7-26 13:33 static/image/common/back.gif
EXPRESS自带了一个小程序lspsurf.exe可实现楼主想要的功能

真不巧,我系统有问题,貌似没有你说的那个小程序

半听可乐 发表于 2012-7-27 09:22:03

xshrimp 发表于 2012-7-26 13:44 static/image/common/back.gif
(defun gps->file-2strlst (fn / f line re)   
(if(and(= (type fn) 'STR) (findfile fn))
(pr ...

朋友,能完善一下吗?五角星★前面的字符都不要,只要从五角星开始的
页: [1] 2 3
查看完整版本: 编程申请:从.lsp文件中提取快捷键列表