wangxin208 发表于 2016-8-9 10:22:59

程序变量保存到文件-通用性强

话不多说,贴源码,源码有些东西来自lee-mac,有些忘记来自哪里了:
;;将变量处理成字符串
(defun processlist ( **l** / LM:Flatten **lf** **lstr** **la** **lr** **nn** )
(defun LM:Flatten ( **l** )
    (if (atom **l**) (list **l**)
      (append (LM:Flatten (car **l**)) (if (cdr **l**) (LM:Flatten (cdr **l**))))
    )
)
(setq **lf** (LM:Flatten **l**))
(setq **lstr** (vl-prin1-to-string **l**))
**lstr**
)

;;将变量以表的形式储存到文件,目录可自己定义
(defun cfg-save (symbols / filename f data)
(setq
    data
   (apply
       'list
       (mapcar
         '(lambda (x) (cons x (vl-symbol-value x)))
         symbols
       )
   )
)
(setq acadpath(vlax-get-property (vlax-get-acad-object) 'Path));;获取CAD根目录,该目录可以自定义成其他目录
(setq filename (strcat acadpath "\\XXCFG.cfg"))
(IF (null (findfile filename ))
    (progn ;若文件不存在
      (setq f (open filename "w"))
      (close f)
    )
   )
(setq f (open filename "w"))
(write-line (processlist data) f)
(close f)
)

;;从配置文件读取数据并赋值给变量
(defun cfg-read (/ filename f line text data)
(setq acadpath(vlax-get-property (vlax-get-acad-object) 'Path));;获取CAD根目录,该目录可以自定义成其他目录
(setq filename (strcat acadpath "\\XXCFG.cfg"))
(IF (null (findfile filename ))
    (progn ;若文件不存在
      (setq f (open filename "w"))
      (close f)
    )
   )
(setq f (open filename "r")
      text "")
(while (setq line (read-line f))
    (setq text (strcat text line))
)
(close f)
(setq data (read text))
(mapcar '(lambda (x) (set (car x) (cdr x))) data)
)


例子:(setq v1 "test2" v2 "test2")
(setq symbols '(v1 v2))
;;保存变量
(cfg-save symbols )
;;读取变量
(cfg-read)

dnbc 发表于 2025-11-17 08:28:31

思路不错,谢谢分享{:1_12:}{:1_12:}{:1_12:}

happyending 发表于 2025-11-17 08:16:50

这代码有用。感谢分享。

yaojing38 发表于 2023-5-25 19:58:23

谢谢大佬无私奉献

kekukele8403 发表于 2020-12-19 19:14:52

好东西,刚好能用上,太感谢

薛旭晨 发表于 2020-12-19 17:02:47

这个不错学习了{:1_1:}

bnjzzheng 发表于 2020-7-26 14:42:59


谢谢分享!!!

huangpc27 发表于 2020-7-26 08:19:46

保存到注册表也可以啊

spacevalue 发表于 2018-6-16 11:09:28

非常有用,下载保存了,谢谢!

weizx2000 发表于 2016-10-9 10:30:41

谢谢分享~~

xx69as 发表于 2016-10-9 09:28:49

正需要,支持楼主大人了!

kqqt6236 发表于 2016-10-2 13:55:54

很好的代码

wangxin208 发表于 2016-9-27 12:49:53

lj524917100 发表于 2016-9-27 08:27


你可以根据自己的需要更改路径啊~~但是建议路径是cad可搜索的

lj524917100 发表于 2016-9-27 08:27:18

保存路径也作为变量比较好

yoyoho 发表于 2016-9-27 07:09:28

感谢 wangxin208 分享程序!!!
页: [1] 2
查看完整版本: 程序变量保存到文件-通用性强