【通用函数】:读取、修改任意ini、txt参数设置文件中的参数
本帖最后由 kele99kele 于 2015-9-7 18:33 编辑;读取参数值(N::GetValue "nice.ini" "ATSTART")
;作用:读取nice.ini文件中ASTART参数的属性值设置
;返回:ASTART的属性值
(defun N::GetValue (fle key / value valuetmp)
(if (findfile fle)
(progn
(setq valuetmp (vldos-readfile (findfile fle)))
(while (cadr valuetmp)
(if
(wcmatch key (car (XD::String:Parse (car valuetmp) " ")))
(setq value (atoi (cadr (XD::String:Parse (car valuetmp)" "))))
)
(setq valuetmp (cdr valuetmp))
)
value
)
(progn
(princ (strcat "\n终止:未找到文件\""fle "\"请将文件放置于AUTOCAD的搜索支持路径下。"))
(princ)
)
)
)
;替换参数值(N::SetValue "nice.ini" "ATSTART" "123")
;作用1:将nice.ini文件中ASTART参数的属性值设置为123。
;作用2:如果nice.ini文件中没有ASTART参数则在文件的末尾添加ASTART参数并设置为123。
;返回:nice.ini文件的存储路径
(defun N::SetValue (fle key value / lst lsttmp ifset)
(if (findfile fle)
(progn
(setq lsttmp (vldos-readfile (findfile fle))
lst '()
ifset 0
)
(while (car lsttmp)
(if
(wcmatch key (car (XD::String:Parse (car lsttmp) " ")))
(progn
(setq lst (cons (strcat (car (XD::String:Parse (car lsttmp) " ")) " " Value) lst))
(setq ifset 1)
)
(setq lst (cons (car lsttmp) lst))
)
(setq lsttmp (cdr lsttmp))
)
(if (= ifset 0) (setq lst (cons (strcat key " " Value) lst)))
(vldos-writefile (findfile fle) (reverse lst) T)
)
(progn
(princ (strcat "\n终止:未找到文件\""fle "\"请将文件放置于AUTOCAD的搜索支持路径下。"))
(princ)
)
)
)一个用来读取,另一个用来修改或写入,用到了黄老大的通用函数以及一个晓东的通用函数,可以在论坛上自己搜索
东拼西凑的东西,不过效果不错,我只发了我写的源码,其他的函数请自行下载。
本帖最后由 kele99kele 于 2015-9-7 18:36 编辑
这些是黄老大以及st788796老兄的函数说明,方便大家理解。;分割字符串
;函数名称:XD::String:Parse
;调用格式:(XD::String:Parse str ";")
;返回值:将str以";"分割为表
;例:(XD::String:Parse str ";")以“;”为分隔符划分字符串“str”为表
;函数简介:任意符号分割字符串为表
;函数来源:晓东论坛XD::AutoLoadLisp函数的内嵌函数
;函数作者:st788796
;适用版本:不限
;最后更新时间:2013-07-10
;备注:九群于2015.9.7将此函数从主函数中剥离并添加说明
;●82 [功能] 转换路径中字符 "/" 为 "\\" 并返回大写值
;●用法: (vldos-formatpath PathStringToFormat )
;●参数1: 路径字符串
;●返回值:转换后的字符串 或者None
;●84.18 [功能] 将字符串或表写入文件 (快于 AutoLISP write-line函数)
;●用法: (vldos-writefile FileNameString ContentStringList ModeFlag )
;●(vldos-writefile FileNameString ContentString ModeFlag )
;●参数1: 文本文件全路径名. (包括后缀名)
;●参数2: 要写入文件的字符串或表
;●参数3: 最加或覆盖标志. nil 最加, T 覆盖
;●返回值: 文本文件全路径名 or NIL
;●84.17 [功能] 读文本文件到表 (快于 AutoLISP read-line函数)
;●用法: (vldos-readfile FilenameToRead )
;●参数1: 文本文件全路径名. (包括后缀名)
;● 只有文本文件才能返回正确结果.
;●返回值: 返回包括文件内容的表 or NIL 你好,XD::String:Parse检索不出来 大哥,求XD::AutoLoadLisp函数,找不到此函数 XD,是晓东论坛开发的插件。 好东西 学习·········
页:
[1]