明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xiaocainiao

[提问] 难题求教!让字符串成为一个变量

[复制链接]
 楼主| 发表于 2023-12-12 10:41:09 | 显示全部楼层
飞雪神光 发表于 2023-12-12 10:35
没明白你说的 但是代码应该是这个意思 你在纠结变量名?变量多了也不行?

是的、我的自变量就是固定的两个、你看我给你后回复的几个代码、就能懂我的需求了
发表于 2023-12-12 10:43:10 | 显示全部楼层
xiaocainiao 发表于 2023-12-12 10:41
是的、我的自变量就是固定的两个、你看我给你后回复的几个代码、就能懂我的需求了

那你测试这个代码了没
 楼主| 发表于 2023-12-12 10:44:18 | 显示全部楼层
飞雪神光 发表于 2023-12-12 10:43
那你测试这个代码了没

测试了啊、就是因为不行才上来问的
发表于 2023-12-12 10:45:08 | 显示全部楼层
xiaocainiao 发表于 2023-12-12 10:44
测试了啊、就是因为不行才上来问的

那我还是不明白
 楼主| 发表于 2023-12-12 10:56:50 | 显示全部楼层

;设置颜色
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\" "col"))
(if col
        (setq col col)
        (setq col "8")
)

;设置图层
(if la
        (setq la la)
        (setq la "0")
)

;设置线型比例
(setq lts (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\" "lts"))
(if lts
        (setq lts lts)
        (setq lts "1")
)


这个应该能懂吧、我就是想把这个简化搞成自定义函数
发表于 2023-12-12 11:45:27 | 显示全部楼层
xiaocainiao 发表于 2023-12-12 10:56
;设置颜色
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\" "col"))
(if col

那不就是这个么
  1. (defun readzc (col mrz /)
  2.   (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" col))
  3.   (if col
  4.     (setq col col)
  5.     (setq col mrz)
  6.   )
  7.         col
  8. )
发表于 2023-12-12 11:47:19 | 显示全部楼层
本帖最后由 飞雪神光 于 2023-12-12 11:49 编辑

变量名给你换一下
  1. (defun readzc (la mrz /)
  2.   (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" la))
  3.   (if col
  4.     (setq col col)
  5.     (setq col mrz)
  6.   )
  7.         col
  8. )
  9. (readzc "图层" "红线")

"图层"传递到 la 当读取到注册表 la 也就是 "图层" 就将读取到的值赋值到col 否则就将mrz赋值到 col  最后返回 col值
发表于 2023-12-12 12:03:59 | 显示全部楼层
  1. (defun readzc (col mrz /)
  2.         (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" (vl-princ-to-string col)))
  3.   (if col
  4.     (setq col col)
  5.     (setq col mrz)
  6.   )
  7.         col
  8. )
  9. (readzc 'col "红线")
 楼主| 发表于 2023-12-12 12:27:26 | 显示全部楼层

这种不行的、之前有朋友说过这种方法、用这种方法的结果始终都是"红线"
发表于 2023-12-12 12:47:54 | 显示全部楼层
换个思路会不会简单点
(defun READZC (key mrz /)
        (cond ((= key "col") (if (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" key)) (setq col col)(setq col mrz)))
                    ((= key "la") (if (setq la (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" key)) (setq la la)(setq la mrz)))
                    ((= key "lts") (if (setq lts (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" key)) (setq lts lts)(setq lts mrz)))
        )  
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 03:51 , Processed in 0.146386 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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