编程申请:从.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退出参照编辑并保存
;;;;;;;;;;;;;;;;;提取快捷命令
(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)
) 前排占座,应该不难 直接读取命令
xyp1964 发表于 2012-7-26 12:59 static/image/common/back.gif
直接读取命令
必须得用院长的工具箱~~~
EXPRESS自带了一个小程序lspsurf.exe可实现楼主想要的功能
(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) 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 ...
这个程序快捷键是什么?怎么用~? psdcdr 发表于 2012-7-26 13:33 static/image/common/back.gif
EXPRESS自带了一个小程序lspsurf.exe可实现楼主想要的功能
真不巧,我系统有问题,貌似没有你说的那个小程序 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 ...
朋友,能完善一下吗?五角星★前面的字符都不要,只要从五角星开始的