找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 849|回复: 5

[求助] [求助]:如何能快速的把一个表中的数值赋给不同的变量

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2002-10-9 10:36:03 | 显示全部楼层 |阅读模式

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

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

×
我在写一个DCL处理函数,想对DCL里面的不同的KEY赋初值。数值我都放入一个表中比如(”CIRCLE" "1000" "3000" "500".....)
怎么能把他们快速的赋值给对应的不同的变量,如:type radius height width等等。

由于量大,我不希望一个一个的用(setq abc (nth 0 mList))这样的多行代码做,有没有方便的方法?

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

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-10-9 11:26:31 | 显示全部楼层

  1. ....
  2.     (mapcar
  3.       '(lambda(x y)
  4.          (if (not (eval x)) (eval (set x y)))
  5.        )
  6.       '(08[ 09[ 10[ 11[ 12[ 13[ 14[ 15[ fns[ 05[ 06[ ty[ tt:72)
  7.       '(1   0   0   1   0   0   1   0   1    0   1   0   2)
  8.     )
  9. ....
复制代码


相当于:
(if (not 08[) (setq 08[ 1))
(if ...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-9 12:15:43 | 显示全部楼层
LL-J的代码考虑了初值变量是否有值,适合提供最新默认值的功能。

如果不考虑,每次都赋值覆盖,那么下面代码就可以:


  1. [FONT=courier new]
  2. (mapcar 'set '(a b c) '(val1 val2 val3))
  3. [/FONT]
复制代码


注意两个参数表的长度要相等。第一个表'(a b c)里面的是变量名符号。

MAPCAR函数非常高效率,大家好好熟悉它。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

发表于 2002-11-2 13:54:04 | 显示全部楼层
;对ZZLIST1中的操作名按ZZLIST2的顺序进行变量填充
(defun set-tile(zzlist1 zzlist2)
(mapcar '(lambda(zsyb1 zsyb2)
            (set_tile zsyb1 (cond((= (type zsyb2) 'INT)(itoa zsyb2))
                                 ((= (type zsyb2) 'REAL)(rtos zsyb2))
                                 ((= (type zsyb2) 'STR) zsyb2)
                                 (t (itoa(set (read zsyb1) 1)))
                            )
            )
          )  
   zzlist1 zzlist2)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-2 19:14:46 | 显示全部楼层
凑热闹
保存变量
(setq setlist '("mirrtext" "filletrad"))
(setq getlist (mapcar 'getvar setlist))

设置变量
(setq setlist '("mirrtext" "filletrad"))
(mapcar 'setvar setlist '(1 0))

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 08:08 , Processed in 0.432666 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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