lk_mbf 发表于 2004-5-28 18:33:00

能具体讲一下怎样读取这个表吗?谢谢

meflying 发表于 2004-5-28 19:43:00

学习LISP

spring 发表于 2004-5-28 19:58:00

飞哥,你的程序答不到他的要求,我想他要的是



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


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


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


朋友是这样的吗?

meflying 发表于 2004-5-28 20:12:00

表里面有空格不确定一说的吗?


'(1 2 3)和'(1                                                                                                                                                                                                                                                                                                                       2 3)有什么不同吗???

spring 发表于 2004-5-28 21:11:00

;;;取得文本文件的内容<BR>;;;调用格式 (GET_FILE_NR fi)<BR>;;;2004/04/14<BR>;;;By-Spring<BR>(defun GET_FILE_NR (fi / fil pe fel)<BR>       (setq screw_list nil)<BR>       (if (findfile fi)<BR>                       (progn<BR>                                       (setq fil (findfile fi))<BR>                                       (setq pe (open fil "r"))<BR>                                       (setq fel T)<BR>                                       (while (/= fel nil)<BR>        (setq fel (read-line pe))<BR>        (setq screw_list (cons fel screw_list))<BR>                                       )<BR>                                       (close pe)<BR>                                       (setq screw_list (cdddr (reverse (cdr screw_list))))<BR>                                        ;根据文本的内容而定<BR>                       )<BR>       )<BR>)<BR>(defun c:gg (/ fi screw_list screw_data)<BR>       (setq fi "screw.txt")<BR>       (GET_FILE_NR fi)                        ;取得文本文件的内容<BR>       (setq screw_data (nth 0 screw_list))        ;取得第一个<BR>)






接下来就是要分别将他们取出了


我原本是想用 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 呢??

无痕 发表于 2004-5-28 21:31:00

糊涂阿,那些是数据,干嘛要转为那些字符?就算转为字符,以后要用的时候一样是要转换为数的!多此一举。


如myflying那样做就挺好的了。

meflying 发表于 2004-5-28 21:42:00

看来SPRING应该仔细把读取的过程搞明白了


我的方法就是:


假设文本为:


1 2 3 4               5


read-line-&gt;"1 2 3 4               5"


strcat-&gt;"(1 2 3 4               5)"


read-&gt;(1 2 3 4 5);到这时,已经是一个由数字1、2、3、4、5组成的一个列表了,相当于(list 1 2 3 4 5)

SWAYWOOD 发表于 2004-5-28 21:53:00

有时候如果想在程序过程中改变序列,可以用点表,这样就可以很容易读取或替换掉其中的某一个

spring 发表于 2004-5-29 11:09:00

谢谢大家!现在搞明白了.但是对 mapcar 函数还没搞懂,呵呵.

cyanflame 发表于 2006-6-2 16:43:00

<P>问一个很蠢的问题,今天下午才知道有autolisp这个东东.....我想借用上面那段程序,请问我怎么选择文件.....我加载了以后输入了f,结果他让我选择对象,我该怎么选择?</P>
<P>另外上面那段程序到底是要输入什么来执行的? </P>
<P>从来没碰过cad及相关...问题太简单不要笑偶...逼得没办法了........................</P>
页: 1 2 [3] 4
查看完整版本: 求助:有关READ-LINE(文本数据导入CAD)