LISP文件加载设置.pdf
下面开始编写初始化LISP程序。这里,我们创建一个LISP程序,命名为:Loadtbox.lsp,这
个程序将负责把菜单、主程序等加载到系统中。
以下是这个Loadtbox.lsp的写法。我尽量在注释中解释:
;;首先定义初始化函数
(defunInittboxApplication(/
;;内部函数
GetMyApplicationPathGettboxPath
strParseStrUnParse
tbox_AddSupportPathLoad_tboxMenu
tbox_placemenu
;;局部变量
tbox_cmdecho_save
)
;;;取得本程序的路径.
;;;文件路径从注册表中读取,这些信息由安装程序负责写入注册表
;;;
(defunGetMyApplicationPath(AppID)
(vl-registry-read
(strcat
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\
AppID
_is1
)
InnoSetup:AppPath
)
)
(defunGettboxPath()
(GetMyApplicationPathLisp工具箱)
)
;;;解析字符串为表(函数来自明经通道转载)
;;;
(defunstrParse(StrDelimiter/SearchStrStringLenreturnnchar)
(setqSearchStrStr)
(setqStringLen(strlenSearchStr))
(setqreturn())
(while(StringLen0)
(setqn1)
(setqchar(substrSearchStr11))
(while(and(/=charDelimiter)(/=char))
(setqn(1+n))
(setqchar(substrSearchStrn1))
);_endofwhile
(setqreturn(cons(substrSearchStr1(1-n))return))
(setqSearchStr(substrSearchStr(1+n)StringLen))
(setqStringLen(strlenSearchStr))
);_endofwhile
(reversereturn)
);_endofdefun
;;;反解析表为字符串(函数来自明经通道转载)
;;;
(defunStrUnParse(LstDelimiter/return)
(setqreturn)
(foreachstrLst
(setqreturn(strcatreturnDelimiterstr))
);_endofforeach
(substrreturn2)
);_endofdefun
;;;添加支持文件搜索路径
;;;
;;;note:第二个参数如果为真,插