找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 724|回复: 10

[求助] read函数读取文本不全

[复制链接]
发表于 2020-5-25 20:30:53 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 bh89757 于 2020-5-25 20:36 编辑

命令: !lst
"(CKD01-01 大于95.6  3  5)"
命令: (read lst)
(CKD01-01 大于95 3 5)
由95.6变为95的原因可能是”.“被认为是点对,所以只读取第一个元素。我想问一下该怎么修改才能读取完全。实在找不到该怎么修改了。

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

已领礼包: 145个

财富等级: 日进斗金

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

使用道具 举报

 楼主| 发表于 2020-5-25 22:28:27 | 显示全部楼层
本帖最后由 bh89757 于 2020-5-25 22:30 编辑
XDSoft 发表于 2020-5-25 22:23
你想要做什么?

我其实是想读取文本文档数据,再cad中插入属性块,但是文本文档中数据不光只有数字,还有中文,像我发的贴子那样,我的程序读取后发现有大于号的的属性,只显示点之前的,我想应该是read读取的原因,只读取第一个元素。
(defun c:cs ()
  (vl-load-com)
  (setvar "DIMZIN" 0)
  (setq strPath "D:/" );定义默zd认路径
  (setq f1 (getfiled "选择数据文件" strPath "txt" 0));显示选择文件窗口并专得到文件路径
   (setq fp (open f1 "r")
         lst '() )    ; 文件
  (setq blockent     (entsel "\n请选择要插入交点的图块:")
        blockentname (car blockent)
         blkname (cdr (assoc 2 (entget blockentname))))
      (if (not (setq BL (getreal "\n插入比例<1.0>")))
    (setq BL 1.0)
  )
     (while (setq str (read-line fp))
     (setq lst  (read (strcat "(" str ")")))
     (princ lst)
  (setq mc  (vl-symbol-name (car lst))
        tc  (vl-princ-to-string(cadr lst))
       x(nth 2 lst)
        y(nth 3 lst)
        pt(list  x y))
    ; (princ pt)
         (command "insert"  blkname  "non" pt BL BL mc tc)   
   )
   (close fp)

)

点评

你要想做字符串查找,分隔,替换,你就去理解一个函数,就足够了 搜索 xd::string:regexps 命令: (xd::string:regexps "[^, ]+" "abc,def cfg" "") ("abc" "def" "cfg") 上面作用,把逗号和空格做分隔符,分  详情 回复 发表于 2020-5-25 23:28
你要想把字符串,变成表,搜索下 xdrx_string_split ,前几天刚讨论的,里面有LISP函数源码  详情 回复 发表于 2020-5-25 23:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2020-5-25 23:17:38 | 显示全部楼层
你去看下帮助,read函数是做什么的?read函数作用是把字符串变成符号名(变量名),不是做你想要的那个
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-5-25 23:25:50 | 显示全部楼层
bh89757 发表于 2020-5-25 22:28
我其实是想读取文本文档数据,再cad中插入属性块,但是文本文档中数据不光只有数字,还有中文,像我发的 ...

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-5-25 23:28:15 | 显示全部楼层
bh89757 发表于 2020-5-25 22:28
我其实是想读取文本文档数据,再cad中插入属性块,但是文本文档中数据不光只有数字,还有中文,像我发的 ...

你要想做字符串查找,分隔,替换,你就去理解一个函数,就足够了
搜索 xd::string:regexps

命令: (xd::string:regexps "[^, ]+" "abc,def cfg" "")
("abc" "def" "cfg")

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

使用道具 举报

已领礼包: 5188个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 5188个

财富等级: 富甲天下

发表于 2020-5-26 09:23:02 | 显示全部楼层
你在配置文件中直接写成:
("CKD01-01"  "大于95.6"  3  5)
程序读取后直接 read,连括号都不用加了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-27 15:33:58 | 显示全部楼层
原地踏步 发表于 2020-5-26 09:23
你在配置文件中直接写成:
("CKD01-01"  "大于95.6"  3  5)
程序读取后直接 read,连括号都不用加了

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

使用道具 举报

 楼主| 发表于 2020-5-27 15:35:09 | 显示全部楼层
newer 发表于 2020-5-25 23:28
你要想做字符串查找,分隔,替换,你就去理解一个函数,就足够了
搜索 xd::string:regexps

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

使用道具 举报

已领礼包: 79个

财富等级: 招财进宝

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 08:37 , Processed in 0.394972 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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