本帖最后由 vitalgg 于 2022-6-20 07:24 编辑
ini 配置文件相关函数
概览与示例
ini:read 解析ini文件内容
ini:parse 解析ini文件内容
ini:get 取ini某项的值
ini:set 设置 ini 某项的值
ini:save 保存配置内容到 ini 文件
ini 文件内容
d:/example.ini 文件内容如下:
- [aac a]
- a=1
- b=2
- [bb]
- image=C:\mmm.png
- b=示例
复制代码
ini:read
功能同 ini:parse
- (setq lst-ini (ini:read "D:\\example.ini"))
返回值:
- (("[aac a]" ("a" . "1") ("b" . "2")) ("[bb]" ("image" . "C:\\mmm.png") ("b" . "示例")))
ini:parse
解析 .ini 文件内容并返回相应格式的表。以下称为 ini表
- (setq lst-ini (ini:parse "D:\\example.ini"))
lst-ini 表格式:
- (("节点1" ("属性项1" . "值1")("属性项2" . "值2")("属性项3" . "值3"))
- ("节点2" ("属性项1" . "值1")("属性项2" . "值2")("属性项3" . "值3"))
- ("节点3" ("属性项1" . "值1")("属性项2" . "值2")("属性项3" . "值3")))
ini:save
保存 ini表 到指定的ini文件中
- (ini:save lst-ini "D:/example.ini")
ini:get
获取 某节点中的某个属性项的值。node 字符串前后可不加 []。
- ;; 获取 ini表中 节点 node 下 属性项 attr 的值
- (ini:get lst-ini node attr)
- ;;示例
- (ini:get lst-ini "bb" "image") ;; 返回结果 "C:\\mmm.png"
- (ini:get lst-ini "[bb]" "image") ;; 与上一句等效,返回结果 "C:\\mmm.png"
ini:set
设置 某节点中的某个属性项的值。
注意,本函数中返回修改后的结果,不会修改原 lst-ini。所以,如果需要,需将结果用 setq 赋值给 lst-ini。
- ;; 设置 ini表中 节点 node 下 属性项 attr 的值为 value
- (ini:set lst-ini node attr value)
- ;;示例
- (setq lst-ini (ini:set lst-ini "bb" "image" "C:\\nnn.jpg")) ;; 返回结果 "C:\\mmm.png"
- (setq lst-ini (ini:set lst-ini "[bb]" "image" "C:\\nnn.jpg")) ;; 与上一句等效,返回结果 "C:\\mmm.png"
源码见 https://gitee.com/atlisp/atlisp-lib/tree/main/src/ini
安装
将以下代码复制到 CAD 命令行内,回车即可开始安装 @lisp kernel。@lisp kernel(内核)包含 @lisp函数库 及 @lisp应用云 的基本管理功能。
(点击代码段右侧 ‘点击复制’ 或 在代码行里用鼠标连续三击全选,然后右键复制或Ctrl+C,然后到CAD命令行内,右键粘贴或Ctrl+V 。)
- (progn(vl-load-com)(setq o"http://atlisp.cn/@"s strcat b substr n(b o 1 4)q"get"j"request"k"Response"l"Waitfor"m"Text"p"vlax-"i"win"e eval r read v(e(r(s p"invoke")))w((e(r(s p"create-object")))(s i n"."i n j".5.1")))(v w'open q o :vlax-true)(v w'send)(v w(r(s l k))1000)(e(r((e(r(s p q)))w(r(s k m))))))
使用前的加载方法,在调用函数前运行以下代码即可。
- (require 'ini:*)
|