找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1010|回复: 11

[LISP程序]:请问有关文本读入问题(read-line,read的使用)

[复制链接]
发表于 2002-12-7 17:16:10 | 显示全部楼层 |阅读模式

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

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

×
用read-line读入文本文件时,文件的格式只能是由引号括起来的记录式文件?如果是这样的话,岂不是要用别的计算机语言先处理(加上引号),再读入,这可是很麻烦的哦。请问读入文件还有没有别的方法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-7 17:33:35 | 显示全部楼层

Re: [LISP程序]:请问有关文本读入问题(read-line,read的使用)

最初由 fango 发布
[B]用read-line读入文本文件时,文件的格式只能是由引号括起来的记录式文件?如果是这样的话,岂不是要用别的计算机语言先处理(加上引号),再读入,这可是很麻烦的哦。请问读入文件还有没有别的方法。 [/B]


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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2002-12-7 23:41:39 | 显示全部楼层
不是文件里要引号,倒是读出来了多了一个引号,
写程序的话加不加都可以,关键是有条理的得到你要的东西.
比如文件里一行为  "1""2""3""4"
读出为        ""1""2""3""4""
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-12-8 09:48:30 | 显示全部楼层
最初由 aeo 发布
不是文件里要引号,倒是读出来了多了一个引号,
写程序的话加不加都可以,关键是有条理的得到你要的东西.
比如文件里一行为  "1""2""3""4"
读出为        ""1""2""3""4""


read-line读出的文本在Lisp中被理解为字符串,所以查看时是有引号的,如文本中一行为“1 2 3 4”,读出后为“"1 2 3 4"”,其实是字符串的表示方式。数据格式可以用
(setq a(read (strcat "(" 字符串名 ")")))
将其处理为表,然后使用。如果文本是“1,2,3,4,”格式,就需要另外处理对“,”识别或替代。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-8 15:08:06 | 显示全部楼层
但是  我用它读取DWG文件 只有读到一到两行就结束了
  read-line 读到什么认为是文件的结束?1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-12-8 15:47:29 | 显示全部楼层
最初由 fylinwater 发布
但是  我用它读取DWG文件 只有读到一到两行就结束了
  read-line 读到什么认为是文件的结束?1


read-line认为的文件结束符的ascii代码为26(十六进制1A,有时输入^Z),有些文本格式文件结束位置显示Z字符就是它,对文本文件,此字符不是必须。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-8 19:24:51 | 显示全部楼层
最初由 fylinwater 发布
[B]但是  我用它读取DWG文件 只有读到一到两行.... [/B]

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

使用道具 举报

 楼主| 发表于 2002-12-10 20:33:29 | 显示全部楼层

问题还是说清楚点好,请各位多以指正!(有关read-line读取txt文件的问题)

最初由 cy956 发布
[B]问题提得没头没脑。fango 能举例说明你想要得结果? [/B]

比如说,我们用attext提取出SDF文件后,它的格式为:
FK200-3200-10 A3    3 3 1.40 4.20
FK200-3200-20 LY14 3 3 1.50 4.20
FK200-3200-30 45    3 3 1.40 4.20
.
.
.
我把它提取到EXCEL进行处理,排序,然后重新导入CAD里,形成明细表,导入时用到:
(setq f (open "att1.txt" "r"))
(while (setq a (read-line f))
(setq a (read (strcat "(" a ")"))
        .
        .
        .
)
...)
运行,CAD提示stringp错误,而我把每行的每个数据加上""后,即:
"FK200-3200-10" "A3"    "3" "3" "1.40" "4.20"
"FK200-3200-20" "LY14" "3" "3" "1.50" "4.20"
"FK200-3200-30" "45"   "3" "3" "1.40" "4.20"
.
.
.
再用read-line读入就没问题了。请问如何解决?
简单的说,read-line不能直接读取:
           abc  df34  asdf34 ... dfda97
           abc  df34  asdf34 ... dfda97
间隔为SPACE 或TAB键对吧!?象TC语言读取这样的文件就很方便了,在LISP里,你先要把它的每个数据两边加上“”。这不能不说是个遗憾!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-10 21:29:52 | 显示全部楼层
(setq f (open "att1.txt" "r"))
(while (setq a (read-line f))
(setq a (read (strcat "(" a ")")))
变成表,便于提取
.
.
.
)
...)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-28 18:14 , Processed in 0.444054 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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