明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1487|回复: 7

[提问] 如何把文本文件中的记录 以表的形式赋予给制定的变量

[复制链接]
发表于 2014-4-17 11:31:23 | 显示全部楼层 |阅读模式
预先设置了变量F M N
将数字   60   80  写在一行,中间用空格隔开  保存为TXT文件。
现在使用READLINE来进行读操作  并复制给变量F    那么F的值是 60 80
现在我想分别提取60、80分别赋值给M和N 。如何实现?
我现在的思路是想把60 80以表的形式赋值给F  然后通过 CAR 和CADR来实现。但是问题就是 找不到方法把TXT文件中 的一行数据以表的形式赋值      

刚开始学LISP  向各位朋友请教  非常感谢

该贴已经同步到 w19891527的微博
 楼主| 发表于 2014-4-17 11:35:00 | 显示全部楼层
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来提取到第一行第一个数
发表于 2014-4-17 12:26:59 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-4-17 14:05 编辑

把一个表的值赋给一组变量
http://bbs.mjtd.com/forum.php?mo ... 9669&fromuid=202795
  1. (defun mset(a b)
  2.   (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
发表于 2014-4-17 13:23:03 | 显示全部楼层
看不太懂你的描述,是不是这个意思:
(setq f(read (strcat "(" "60 80" ")")))
 楼主| 发表于 2014-4-17 14:12:25 | 显示全部楼层
ll_j 发表于 2014-4-17 13:23
看不太懂你的描述,是不是这个意思:
(setq f(read (strcat "(" "60 80" ")")))

换个说法吧,就是TEXT文本里存放第一行数据60 80  中间用空格隔开  如何分别提取到60和80两个数

点评

我的回复就是,两端加字符括号,再read  发表于 2014-4-17 15:38
发表于 2014-4-17 14:28:51 | 显示全部楼层
  1. (mapcar 'set '(F M N) '((60 80) 60 80))
复制代码
 楼主| 发表于 2014-4-17 15:09:37 | 显示全部楼层
xyp1964 发表于 2014-4-17 14:28

但是我的TXT文件里面存放的格式不是  表的格式    (mapcar 'set '(p q) (read-line f))  这样过后执行到这提示LISTP “50 60” 参数类型错误
 楼主| 发表于 2014-4-17 16:10:13 | 显示全部楼层
w19891527 发表于 2014-4-17 14:12
换个说法吧,就是TEXT文本里存放第一行数据60 80  中间用空格隔开  如何分别提取到60和80两个数

解决了 谢谢你  一直不理解READ的使用   通过你的解答 明白不少  非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 23:42 , Processed in 0.192384 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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