xiaocainiao 发表于 2023-12-12 10:41:09

飞雪神光 发表于 2023-12-12 10:35
没明白你说的 但是代码应该是这个意思 你在纠结变量名?变量多了也不行?

是的、我的自变量就是固定的两个、你看我给你后回复的几个代码、就能懂我的需求了

飞雪神光 发表于 2023-12-12 10:43:10

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

那你测试这个代码了没

xiaocainiao 发表于 2023-12-12 10:44:18

飞雪神光 发表于 2023-12-12 10:43
那你测试这个代码了没

测试了啊、就是因为不行才上来问的

飞雪神光 发表于 2023-12-12 10:45:08

xiaocainiao 发表于 2023-12-12 10:44
测试了啊、就是因为不行才上来问的

那我还是不明白

xiaocainiao 发表于 2023-12-12 10:56:50

飞雪神光 发表于 2023-12-12 10:45
那我还是不明白

;设置颜色
(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


那不就是这个么(defun readzc (col mrz /)
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" col))
(if col
    (setq col col)
    (setq col mrz)
)
      col
)

飞雪神光 发表于 2023-12-12 11:47:19

本帖最后由 飞雪神光 于 2023-12-12 11:49 编辑

变量名给你换一下(defun readzc (la mrz /)
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" la))
(if col
    (setq col col)
    (setq col mrz)
)
      col
)
(readzc "图层" "红线")
"图层"传递到 la 当读取到注册表 la 也就是 "图层" 就将读取到的值赋值到col 否则就将mrz赋值到 col最后返回 col值

飞雪神光 发表于 2023-12-12 12:03:59

(defun readzc (col mrz /)
        (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" (vl-princ-to-string col)))
(if col
    (setq col col)
    (setq col mrz)
)
        col
)
(readzc 'col "红线")

xiaocainiao 发表于 2023-12-12 12:27:26

飞雪神光 发表于 2023-12-12 12:03


这种不行的、之前有朋友说过这种方法、用这种方法的结果始终都是"红线"

start4444 发表于 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)))
        )
)
页: 1 [2] 3 4
查看完整版本: 难题求教!让字符串成为一个变量