@lisp函数库:ini 配置文件相关函数
本帖最后由 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 文件内容如下:
a=1
b=2
image=C:\mmm.png
b=示例
ini:read
功能同 ini:parse
(setq lst-ini (ini:read "D:\\example.ini"))
返回值:
(("" ("a" . "1") ("b" . "2")) ("" ("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 "" "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 "" "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:*)
这个必须点赞了 这个非常强大 请问一下,如何离线调用呢? frybud 发表于 2022-8-1 00:10
请问一下,如何离线调用呢?
在线安装,完成后拔了网线就能离线调用。 vitalgg 发表于 2022-8-1 01:50
在线安装,完成后拔了网线就能离线调用。
我把网断了。。好像不行
直接调用函数,不用require 。
frybud 发表于 2022-8-1 11:50
我把网断了。。好像不行
直接调用函数,不用require 。
默认自动加载全部@lisp函数库。 请问要怎么找到这个的源代码?
(require '(p:* string:*))
找不到require这个函数噢! `中微子 发表于 2023-8-27 11:26
请问要怎么找到这个的源代码?
(require '(p:* string:*))
找不到require这个函数噢!
(progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""org/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))
安装 @lisp核心管理系统。
页:
[1]
2