找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3031|回复: 15

[每日一码] 程序变量保存到文件-通用性强

[复制链接]

已领礼包: 20个

财富等级: 恭喜发财

发表于 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)

评分

参与人数 1D豆 +5 收起 理由
newer + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

本帖被以下淘专辑推荐:

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3个

财富等级: 恭喜发财

发表于 2023-5-25 19:58:23 | 显示全部楼层
谢谢大佬无私奉献
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-12-19 19:14:52 | 显示全部楼层
好东西,刚好能用上,太感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-12-19 17:02:47 | 显示全部楼层
这个不错  学习了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2020-7-26 14:42:59 | 显示全部楼层

谢谢分享!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 677个

财富等级: 财运亨通

发表于 2020-7-26 08:19:46 | 显示全部楼层
保存到注册表也可以啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2018-6-16 11:09:28 | 显示全部楼层
非常有用,下载保存了,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 110个

财富等级: 日进斗金

发表于 2016-10-9 10:30:41 | 显示全部楼层
谢谢分享~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

发表于 2016-10-9 09:28:49 | 显示全部楼层
正需要,支持楼主大人了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

发表于 2016-10-2 13:55:54 | 显示全部楼层
很好的代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2016-9-27 12:49:53 | 显示全部楼层

你可以根据自己的需要更改路径啊~~但是建议路径是cad可搜索的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3608个

财富等级: 富可敌国

发表于 2016-9-27 08:27:18 | 显示全部楼层
保存路径也作为变量比较好
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8987个

财富等级: 富甲天下

发表于 2016-9-27 07:09:28 | 显示全部楼层
感谢 wangxin208 分享程序!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-8-14 12:32:05 | 显示全部楼层
这个好,经常用到,保存路径也作为变量比较好。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-9 13:57:39 | 显示全部楼层
WhoCanSay 发表于 2016-8-9 11:30
这些文件裸露在外,不安全。就我个人而言,最不喜欢有这些txt,除非不得已而用之。

还不是为了保存程序设置,已达到下次自动加载设置的目的,这是不可避免的,要是不安全,你可以加密文件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 06:07 , Processed in 0.517556 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表