如何把文本文件中的记录 以表的形式赋予给制定的变量
预先设置了变量F M N将数字 60 80写在一行,中间用空格隔开保存为TXT文件。
现在使用READLINE来进行读操作并复制给变量F 那么F的值是 60 80
现在我想分别提取60、80分别赋值给M和N 。如何实现?
我现在的思路是想把60 80以表的形式赋值给F然后通过 CAR 和CADR来实现。但是问题就是 找不到方法把TXT文件中 的一行数据以表的形式赋值
刚开始学LISP向各位朋友请教非常感谢
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 w19891527的微博 TXT文件中的值第一行100 50第二行 60 70
(defun c:yyy(/ f w n m)
(command "style" "汉字" "仿宋_GB2312" "" "" "" "" "" "")
(setq n (getstring "请输入数据路径"))
(setq f (open n "r"))
(setq w 1)
(while (/= w nil)
(setq w (read-line f))
(setq m (list w))
(command "text" "r" (list 0 0) 150 0 (car m))
)
(close f)
(princ)
)
我想把文本中的 100 50变成表(100 50)再赋予给M再通过CAR来提取到第一行第一个数
本帖最后由 llsheng_73 于 2014-4-17 14:05 编辑
把一个表的值赋给一组变量
http://bbs.mjtd.com/forum.php?mo ... 9669&fromuid=202795
(defun mset(a b)
(mapcar'set(mapcar'read a)b))
(setq str(read-line f))==>str="60 80 1.2"
(mset '("A""B""C")(read(strcat"(" str ")")))
==> A =60;B=80;C=1.2 看不太懂你的描述,是不是这个意思:
(setq f(read (strcat "(" "60 80" ")"))) ll_j 发表于 2014-4-17 13:23 static/image/common/back.gif
看不太懂你的描述,是不是这个意思:
(setq f(read (strcat "(" "60 80" ")")))
换个说法吧,就是TEXT文本里存放第一行数据60 80中间用空格隔开如何分别提取到60和80两个数 (mapcar 'set '(F M N) '((60 80) 60 80)) xyp1964 发表于 2014-4-17 14:28 static/image/common/back.gif
但是我的TXT文件里面存放的格式不是表的格式 (mapcar 'set '(p q) (read-line f))这样过后执行到这提示LISTP “50 60” 参数类型错误 w19891527 发表于 2014-4-17 14:12 static/image/common/back.gif
换个说法吧,就是TEXT文本里存放第一行数据60 80中间用空格隔开如何分别提取到60和80两个数
解决了 谢谢你一直不理解READ的使用 通过你的解答 明白不少非常感谢
页:
[1]