找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 734|回复: 3

[每日一码] 将list数据输出至TXT文件

[复制链接]

已领礼包: 3个

财富等级: 恭喜发财

发表于 2021-3-13 18:44:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 晨曦CAD 于 2021-3-13 19:54 编辑
  1. ;;list数据输出到文件
  2. ;@晨曦 2021.3
  3. ;输入参数:lst list数据
  4. ;          ff 文件描述符,open函数返回值
  5. (defun list->file(lst ff / i temp conslst)
  6.   (princ "(" ff)
  7.   
  8.   ;处理关联表
  9.   (if(= (isRealList lst) 2)
  10.     (progn
  11.       (setq conslst(nth 1 (con2list lst))
  12.       lst(nth 0 (con2list lst)))
  13.     )
  14.    )
  15.   
  16.   (setq i 0)
  17.   (repeat(length lst)
  18.     (setq temp(nth i lst))
  19.     (cond
  20.       ;list
  21.       ((= (type temp) (quote LIST)) (list->file temp ff))
  22.       ;字符串
  23.       ((= (type temp) (quote STR)) (princ (chr 34) ff)(princ temp ff)(princ (chr 34) ff))
  24.       ;int real数值
  25.       ((or(= (type temp) (quote INT))(= (type temp) (quote REAL))) (princ temp ff)(princ (chr 32) ff))
  26.       ;图元(实体名会变 ,此处输出为字符串)
  27.       ((= (type temp) (quote ENAME)) (princ (chr 34) ff)
  28.                                      (princ (vl-string-subst "" " "(VL-PRINC-TO-STRING temp))  ff)
  29.                                      (princ (chr 34) ff))
  30.       ;选择集(此处仅输出为选择集名称LIST)
  31.       ((= (type temp) (quote PICKSET))(list->file (list (VL-PRINC-TO-STRING temp))  ff))
  32.       ;符号
  33.       ((= (type temp) (quote SYM))(princ temp ff)(princ (chr 32) ff))
  34.       );cond
  35.      (setq i(1+ i))
  36.     );repeat
  37.   
  38.   ;处理关联表
  39.   (if(/= conslst nil)
  40.     (progn
  41.       (princ (chr 32) ff) ;空格
  42.       (princ (chr 46) ff) ;逗号
  43.       (princ (chr 32) ff)
  44.       (cond
  45.       ;list
  46.       ((= (type conslst) (quote LIST)) (list->file conslst ff))
  47.       ;字符串
  48.       ((= (type conslst) (quote STR)) (princ (chr 34) ff)(princ conslst ff)(princ (chr 34) ff))
  49.       ;int real数值
  50.       ((or(= (type conslst) (quote INT))(= (type conslst) (quote REAL))) (princ conslst ff)(princ (chr 32) ff))
  51.       ;图元(实体名会变,可自动转换为句柄 DXF 5 ,此处输出为字符串)
  52.       ((= (type conslst) (quote ENAME)) (princ (chr 34) ff)
  53.                                         (princ (vl-string-subst "" " "(VL-PRINC-TO-STRING conslst))  ff)
  54.                                         (princ (chr 34) ff))
  55.       ;选择集(此处仅输出为选择集名称LIST)
  56.       ((= (type conslst) (quote PICKSET))(list->file (list (VL-PRINC-TO-STRING conslst))  ff))
  57.       ;符号
  58.       ((= (type conslst) (quote SYM))(princ conslst ff)(princ (chr 32) ff))
  59.       )
  60.       )
  61.     )
  62.   
  63.   (princ ")" ff)
  64.   )

;测试案例
(defun tt(/ ll f )
  (setq ll (list 1 2 "3" "4" 5 '(1 2 "3" 4 "" 5) (cons 44 55)(CAR(ENTSEL))'<))
  (setq f(open "TT.txt" "w"))
  (list->file ll f)
  (close f)
  )


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

已领礼包: 756个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 914个

财富等级: 财运亨通

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 06:04 , Processed in 0.234749 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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