vitalgg 发表于 2022-6-20 06:43:50

@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:*)







注册 发表于 2022-6-23 13:13:35

这个必须点赞了

xsso 发表于 2022-6-30 09:51:43

这个非常强大

frybud 发表于 2022-8-1 00:10:58

请问一下,如何离线调用呢?

vitalgg 发表于 2022-8-1 01:50:37

frybud 发表于 2022-8-1 00:10
请问一下,如何离线调用呢?

在线安装,完成后拔了网线就能离线调用。

frybud 发表于 2022-8-1 11:50:16

vitalgg 发表于 2022-8-1 01:50
在线安装,完成后拔了网线就能离线调用。



我把网断了。。好像不行

vitalgg 发表于 2022-8-1 14:24:54

直接调用函数,不用require 。

vitalgg 发表于 2022-8-1 14:26:06

frybud 发表于 2022-8-1 11:50
我把网断了。。好像不行

直接调用函数,不用require 。

默认自动加载全部@lisp函数库。

`中微子 发表于 2023-8-27 11:26:33

请问要怎么找到这个的源代码?
(require '(p:* string:*))
找不到require这个函数噢!

vitalgg 发表于 2023-8-27 15:24:40

`中微子 发表于 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
查看完整版本: @lisp函数库:ini 配置文件相关函数