找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1512|回复: 16

[求助] [求助]:如何将一个变量名变为一个字符串?

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2004-4-10 22:06:27 | 显示全部楼层 |阅读模式

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

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

×
我想将一个变量名变为字符串
如: 
 一变量名为 abc           可对其进行赋值操作:(setq abc 5.10)
 如何将其变为字符串“abc”呢?
      abc->"abc"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-4-11 07:46:24 | 显示全部楼层
用在什么条件下, 能否把问题的前因后果说清楚?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-11 13:19:54 | 显示全部楼层
学习学习再学习
[php]
vl-symbol-name  函数
语法
      (vl-symbol-name  symbol)
功能
      返回包含某符号名的字符串。

说明

参数 symbol 为任意 LISP 符号。

返回值:

字符串,包括给定符号参数的名称,注意返回大写的字符串。

样例:

1)_$ (vl-symbol-name 'f:symbol )

"F:SYMBOL"

2)_$ (progn (setq symbol 'my-lisp) (vl-symbol-name symbol))

"MY-LISP"

3)_$ (vl-symbol-name 8)

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-11 21:53:44 | 显示全部楼层
主要是我想将变量用词典的方式保存在图形中,如

  1. ;;=============================
  2. ;;获取变量
  3. (defun Get_Ldata(ldata)
  4.   (vlax-ldata-get "NetBee_var" ldata)
  5.   )
  6. ;;=============================
  7. ;;设置变量
  8. (defun Set_Ldata(ldata vars)
  9.   (vlax-ldata-Put "NetBee_var" ldata vars)
  10.   )

可是这样一来,调用该函数时,变量必须为字符串,


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

使用道具 举报

发表于 2004-4-12 00:38:31 | 显示全部楼层
试试cbx老师的程序:

(defun SToA (|s / |f)
            (SetQ |f (Open "stoa" "w")) (PrinC |s |f)      (Close |f)
            (SetQ |f (Open "stoa" "r") |s (Read-Line |f)) (Close |f)
            (Eval |s)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-12 06:30:07 | 显示全部楼层

Re: [求助]:如何将一个变量名变为一个字符串?

最初由 netbee 发布
[B]我想将一个变量名变为字符串 如:一变量名为 abc  可对其进行赋值操作:(setq abc 5.10)如何将其变为字符串“abc”呢?      abc->"abc" [/B]


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

使用道具 举报

发表于 2004-4-12 08:10:48 | 显示全部楼层
测试:

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-14 09:49:04 | 显示全部楼层
假设这个[变量名至字符串]函数名为:Vtoa
若有一个变量名为Myvar,其值可为任意类型,我想将变量名转换为字符串。
注意:并不是变量值,而是变量名!
---------------------------------------------
该函数功能如下:
(Vtoa Myvar) 返回 "Myvar"
------------------------------------------------
请问如何实现这个函数?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-14 13:43:20 | 显示全部楼层
(vl-symbol-name  myvar)
->"myvar"
(setq (read "myvar") "\n你根本没看我上次给的函数帮助,真是。。。(不知道该怎么说你)!")
->你根本没看我上次给的函数帮助,真是。。。(不知道该怎么说你)!

更正 如下:(2004.4.12)
(vl-symbol-name 'myvar)
->"myvar"
(set (eval(quote(read "myvar"))) "\n你根本没看我上次给的函数帮助,真是。。。(不知道该怎么说你)!")
->你根本没看我上次给的函数帮助,真是。。。(不知道该怎么说你)!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-14 13:58:48 | 显示全部楼层
最初由 陌生人 发布
[B](vl-symbol-name  myvar)  ->"myvar" ... [/B]

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

使用道具 举报

发表于 2004-4-15 13:47:55 | 显示全部楼层
看来我的知识还差的远呢!
我的变量保存在CFG文件中了,所有图形都要用同一个变量!
SETCFG和GETCFG!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-15 16:35:35 | 显示全部楼层
最初由 陌生人 发布
[B](vl-symbol-name  myvar)
->"myvar"
(setq (read "myvar") "\n你根本没看我上次给的函数帮助,真是。。。(不知道该怎么说你)!")
->你根本没看我上次给的函数帮助,真是。。。(不知道该怎么说你)!

更正 ?.. [/B]


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

使用道具 举报

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

使用道具 举报

发表于 2004-4-15 18:41:53 | 显示全部楼层
无理要求?
我的理解是楼主想把变量名存储起来,在后续程序中读出并对其赋值。
请楼主再解释一下是否是这个意思?
举例:
存储当前变量及其值:
(setq mysvrlst (list (list "mysvr1" (eval mysvr1)) (list "mysvr2" (eval mysvr2))...)
可存储到cad词典or扩展数据,or外部文件.
读入,判断数值是否是2,如不是,重新付值:
(setq var  (nth i mysvrlst))
( if (/= 2 (cadr var) )
   (set (eval(quote(read (car var))))  2)
)
...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-16 08:46:29 | 显示全部楼层
;;=============================
;;獲取變數
(defun GET_LDATA (LDATA)
  (vlax-ldata-get "NetBee_var" LDATA)
)
;;=============================
;;設置變數
(defun SET_LDATA (LDATA VARS)
  (vlax-ldata-put "NetBee_var" LDATA VARS)
)
;;可是這樣一來,調用該函數時,變數必須為字串,

;;如
;;(SET_LDATA "test" 5.0)
;;不能用
;;(SET_LDATA TEST 5.0)
;;這種方式,很不方便。



;;他要如上的效果,即輸入TEST = "TEST"
;;他也沒有把變數名存儲起來!!!

(defun SET_LDATA (LDATA VARS)
  (setq LDATA (vl-princ-to-string LDATA))
  (vlax-ldata-put "NetBee_var" LDATA VARS)
)
(defun GET_LDATA (LDATA)
  (setq LDATA (vl-princ-to-string LDATA))
  (vlax-ldata-get "NetBee_var" LDATA)
)

;;(SET_LDATA 'TEST 5.0)
;;(GET_LDATA 'TEST)

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 05:15 , Processed in 0.452153 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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