明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1784|回复: 5

[已解答] read-line函数出错~

  [复制链接]
发表于 2014-7-7 17:08:55 | 显示全部楼层 |阅读模式
文本文件中如果含有引号"",就会出错.
如文本中有一行是(MJ:ChangeAttributes (list (car (entsel)) (cons "设计" "AA")(cons "名称" "BB")))
读取出来变成"(MJ:ChangeAttributes (list (car (entsel)) (cons \"设计\" \"AA\")(cons \"名称\" \"BB\")))"

如何才能保证不变呢?
;读取txt文本文件,按行组成表
(defun xx-txt2lst (files / out)
(setq file (open files "r"))
(setq out '())
(while (setq a (read-line file))
      (setq out (cons a out))
  )
(close file)
(setq out (reverse out))
)



"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-7-7 17:18:23 | 显示全部楼层
一个可能不太好的方法…:
读取出来后再处理该字符串,用空格替换\?
不知道行不行
发表于 2014-7-7 17:26:31 | 显示全部楼层
试试 read 函数
发表于 2014-7-7 17:35:07 | 显示全部楼层
引号表示字符串的开始和结束,所以如果在字符串中出现引号,则必须使用反斜杠来对其“解释”,否则程序会把字符串从此处分断。
在字符串中出现\"是正确的,虽然显示成这样,但系统不会认错,使用时也才会正确。
你可以通过把这个字符串写回文件进行测试验证。

点评

测试通过,虽然回显有问题,不过不影响到结果~嘿嘿~  发表于 2014-7-8 00:15
发表于 2014-7-7 17:49:28 | 显示全部楼层
赞同楼上的解释
发表于 2014-7-8 08:40:31 | 显示全部楼层
77077 测试通过,虽然回显有问题,不过不影响到结果~嘿嘿~

你还没有完全理解,回显是没有问题的,这是特意这样的,你试着把那些反斜杠去掉,看看还是不是一个完整字符串?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 09:38 , Processed in 0.182030 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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