明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2807|回复: 6

[源码] 【通用函数】:读取、修改任意ini、txt参数设置文件中的参数

[复制链接]
发表于 2015-9-7 18:28:08 | 显示全部楼层 |阅读模式
本帖最后由 kele99kele 于 2015-9-7 18:33 编辑
  1. ;读取参数值(N::GetValue "nice.ini" "ATSTART")
  2. ;作用:读取nice.ini文件中ASTART参数的属性值设置
  3. ;返回:ASTART的属性值
  4. (defun N::GetValue (fle key / value valuetmp)
  5.   (if (findfile fle)
  6.     (progn
  7.       (setq valuetmp (vldos-readfile (findfile fle)))
  8.       (while (cadr valuetmp)
  9.         (if
  10.           (wcmatch key (car (XD::String:Parse (car valuetmp) " ")))
  11.           (setq value (atoi (cadr (XD::String:Parse (car valuetmp)" "))))
  12.         )
  13.         (setq valuetmp (cdr valuetmp))
  14.       )
  15.       value
  16.     )
  17.     (progn
  18.       (princ (strcat "\n终止:未找到文件""fle ""请将文件放置于AutoCAD的搜索支持路径下。"))
  19.       (princ)
  20.     )
  21.   )
  22. )
  23. ;替换参数值(N::SetValue "nice.ini" "ATSTART" "123")
  24. ;作用1:将nice.ini文件中ASTART参数的属性值设置为123。
  25. ;作用2:如果nice.ini文件中没有ASTART参数则在文件的末尾添加ASTART参数并设置为123。
  26. ;返回:nice.ini文件的存储路径
  27. (defun N::SetValue (fle key value / lst lsttmp ifset)
  28.   (if (findfile fle)
  29.     (progn
  30.       (setq lsttmp (vldos-readfile (findfile fle))
  31.         lst '()
  32.         ifset 0
  33.       )
  34.       (while (car lsttmp)
  35.         (if
  36.           (wcmatch key (car (XD::String:Parse (car lsttmp) " ")))
  37.           (progn
  38.             (setq lst (cons (strcat (car (XD::String:Parse (car lsttmp) " ")) "    " Value) lst))
  39.             (setq ifset 1)
  40.           )
  41.           (setq lst (cons (car lsttmp) lst))
  42.         )
  43.         (setq lsttmp (cdr lsttmp))
  44.       )
  45.       (if (= ifset 0) (setq lst (cons (strcat key "    " Value) lst)))
  46.       (vldos-writefile (findfile fle) (reverse lst) T)
  47.     )
  48.     (progn
  49.       (princ (strcat "\n终止:未找到文件""fle ""请将文件放置于AUTOCAD的搜索支持路径下。"))
  50.       (princ)
  51.     )
  52.   )
  53. )
一个用来读取,另一个用来修改或写入,用到了黄老大的通用函数以及一个晓东的通用函数,可以在论坛上自己搜索
东拼西凑的东西,不过效果不错,我只发了我写的源码,其他的函数请自行下载。
 楼主| 发表于 2015-9-7 18:29:34 | 显示全部楼层
本帖最后由 kele99kele 于 2015-9-7 18:36 编辑

这些是黄老大以及st788796老兄的函数说明,方便大家理解。
  1. ;分割字符串
  2. ;函数名称:  XD::String:Parse
  3. ;调用格式:  (XD::String:Parse str ";")
  4. ;返回值:  将str以";"分割为表
  5. ;例:(XD::String:Parse str ";")以“;”为分隔符划分字符串“str”为表
  6. ;函数简介:  任意符号分割字符串为表
  7. ;函数来源:  晓东论坛XD::AutoLoadLisp函数的内嵌函数
  8. ;函数作者:  st788796
  9. ;适用版本:  不限
  10. ;最后更新时间:  2013-07-10
  11. ;备注:  九群于2015.9.7将此函数从主函数中剥离并添加说明

  12. ;●82 [功能] 转换路径中字符 "/" 为 "\" 并返回大写值
  13. ;●用法: (vldos-formatpath PathStringToFormat[STRING] )
  14. ;●参数1: 路径字符串
  15. ;●返回值:转换后的字符串 或者None

  16. ;●84.18 [功能] 将字符串或表写入文件 (快于 AutoLISP write-line函数)
  17. ;●用法: (vldos-writefile FileNameString[STRING] ContentStringList[LIST] ModeFlag[BOOLEAN] )
  18. ;●(vldos-writefile FileNameString[STRING] ContentString[STRING] ModeFlag[BOOLEAN] )
  19. ;●参数1: 文本文件全路径名. (包括后缀名)
  20. ;●参数2: 要写入文件的字符串或表
  21. ;●参数3: 最加或覆盖标志. nil 最加, T 覆盖
  22. ;●返回值: 文本文件全路径名 or NIL

  23. ;●84.17 [功能] 读文本文件到表 (快于 AutoLISP read-line函数)
  24. ;●用法: (vldos-readfile FilenameToRead[STRING] )
  25. ;●  参数1: 文本文件全路径名. (包括后缀名)
  26. ;●        只有文本文件才能返回正确结果.
  27. ;●返回值: 返回包括文件内容的表 or NIL
复制代码

点评

这些函数能发上来吗?  发表于 2020-2-24 22:08
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-15 21:21:51 | 显示全部楼层
你好,XD::String:Parse检索不出来
发表于 2022-6-16 22:34:59 | 显示全部楼层
大哥,求XD::AutoLoadLisp函数,找不到此函数
发表于 2022-6-17 08:12:40 | 显示全部楼层
XD,是晓东论坛开发的插件。
发表于 2023-8-18 22:26:30 | 显示全部楼层
好东西 学习·········
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 03:29 , Processed in 0.172704 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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