明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lk_mbf

求助:有关READ-LINE(文本数据导入CAD)

  [复制链接]
 楼主| 发表于 2004-5-28 18:33 | 显示全部楼层
能具体讲一下怎样读取这个表吗?谢谢
发表于 2004-5-28 19:43 | 显示全部楼层
学习LISP
发表于 2004-5-28 19:58 | 显示全部楼层
飞哥,你的程序答不到他的要求,我想他要的是



1,首先从文本中读出数据 ("1"                         "2"                 "3"),1和2之间的空格不确定


2.将它们分别取出 (setq a "1")         (setq b "2" )         (setq c "3")


-------------------------------------------------------------------------------


朋友是这样的吗?
发表于 2004-5-28 20:12 | 显示全部楼层
表里面有空格不确定一说的吗?


'(1 2 3)和'(1                                                                                                                                                                                                                                                                                                                         2 3)有什么不同吗???
发表于 2004-5-28 21:11 | 显示全部楼层
;;;取得文本文件的内容
;;;调用格式 (GET_FILE_NR fi)
;;;2004/04/14
;;;By-Spring
(defun GET_FILE_NR (fi / fil pe fel)
(setq screw_list nil)
(if (findfile fi)
(progn
(setq fil (findfile fi))
(setq pe (open fil "r"))
(setq fel T)
(while (/= fel nil)
(setq fel (read-line pe))
(setq screw_list (cons fel screw_list))
)
(close pe)
(setq screw_list (cdddr (reverse (cdr screw_list))))
;根据文本的内容而定
)
)
)
(defun c:gg (/ fi screw_list screw_data)
(setq fi "screw.txt")
(GET_FILE_NR fi) ;取得文本文件的内容
(setq screw_data (nth 0 screw_list)) ;取得第一个
) 接下来就是要分别将他们取出了 我原本是想用 substr 函数取出空格,所以就要确定空格有多少个 --------------------------------------------------- 我现在想用 read 取出 (setq screw_size (read screw_data)),这样就不用考虑空格了 然后将它移出 screw_data (帮助文件上说 vl-string-trim 从字符串的开始和结束删除指定字符,可是我试了一下只移开头也行) 现在的问题是用 READ 取出的是原子,怎么样才能将原子转换成字串呢??? 对了用我程序测 liu.txt 时 "21007.49 \t2222.98 \t24831.05 \t2221.71 \t24795.43 \t0 \t21000\t0" 怎么会加了一个 t 呢??

本帖子中包含更多资源

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

x
发表于 2004-5-28 21:31 | 显示全部楼层
糊涂阿,那些是数据,干嘛要转为那些字符?就算转为字符,以后要用的时候一样是要转换为数的!多此一举。


如myflying那样做就挺好的了。
发表于 2004-5-28 21:42 | 显示全部楼层
看来SPRING应该仔细把读取的过程搞明白了


我的方法就是:


假设文本为:


1 2 3 4                 5


read-line->"1 2 3 4                 5"


strcat->"(1 2 3 4                 5)"


read->(1 2 3 4 5);到这时,已经是一个由数字1、2、3、4、5组成的一个列表了,相当于(list 1 2 3 4 5)
发表于 2004-5-28 21:53 | 显示全部楼层
有时候如果想在程序过程中改变序列,可以用点表,这样就可以很容易读取或替换掉其中的某一个
发表于 2004-5-29 11:09 | 显示全部楼层
谢谢大家!现在搞明白了.但是对 mapcar 函数还没搞懂,呵呵.
发表于 2006-6-2 16:43 | 显示全部楼层

问一个很蠢的问题,今天下午才知道有autolisp这个东东.....我想借用上面那段程序,请问我怎么选择文件.....我加载了以后输入了f,结果他让我选择对象,我该怎么选择?

另外上面那段程序到底是要输入什么来执行的?

从来没碰过cad及相关...问题太简单不要笑偶...逼得没办法了........................

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

本版积分规则

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

GMT+8, 2024-5-18 17:45 , Processed in 0.344568 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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