明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xiaocainiao

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

[复制链接]
发表于 2023-12-12 12:49:36 | 显示全部楼层
xiaocainiao 发表于 2023-12-12 12:27
这种不行的、之前有朋友说过这种方法、用这种方法的结果始终都是"红线"

你不在 注册表里写入信息他永远返回的是nil  还有你注意看 readzc 后面的col 是带单引号的
发表于 2023-12-12 15:07:35 | 显示全部楼层
如何读写注册表并变量赋值,如何组织数据,楼主先想清楚后再写比较好。
发表于 2023-12-12 15:11:44 | 显示全部楼层
不是组织数据问题,是语言表达问题,说了这么多,问问题都没说清楚是啥问题。
 楼主| 发表于 2023-12-13 10:40:30 | 显示全部楼层
xiaocainiao 发表于 2023-12-12 10:36
我现在就是有很多这样的代码、每次都是重复的、比较乱、所以想搞一个自定义函数

Null函数我知道的、经常用、我这个只是一个示例、就是想知道能不能搞成自定义函数
 楼主| 发表于 2023-12-13 10:43:08 | 显示全部楼层
start4444 发表于 2023-12-12 12:47
换个思路会不会简单点
(defun READZC (key mrz /)
        (cond ((= key "col") (if (setq col (vl-registry-re ...

其实我就是想研究一下注册表里面的主键、能不能搞成自变量的形式、研究了好久没找到方法
 楼主| 发表于 2023-12-13 11:08:56 | 显示全部楼层
e2002 发表于 2023-12-12 15:07
如何读写注册表并变量赋值,如何组织数据,楼主先想清楚后再写比较好。

不好意思、应该是我没表达清楚

(defun READZCB (col /)
        (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\\" "col"))
)
我就是想让 (READZCB la)的结果等于下面这个
(setq la (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\\" "la"))
 楼主| 发表于 2023-12-13 11:11:23 | 显示全部楼层
kozmosovia 发表于 2023-12-12 15:11
不是组织数据问题,是语言表达问题,说了这么多,问问题都没说清楚是啥问题。

(defun READZCB (col /)
        (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\\" "col"))
)
我就是想让 (READZCB la)这个表达式的运行结果等同于下面这个
(setq la (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\\" "la"))

这样说不知道能不能理解
发表于 2023-12-13 12:06:33 | 显示全部楼层
xiaocainiao 发表于 2023-12-13 11:11
(defun READZCB (col /)
        (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\\" "col"))
...

感觉你没搞清楚自定义函数参数,假如现在 READZCB 这个函数已经成功了,那你实际应该是怎么用的,写一小段出来看看就很清楚要的效果了
 楼主| 发表于 2023-12-13 12:29:37 | 显示全部楼层
start4444 发表于 2023-12-13 12:06
感觉你没搞清楚自定义函数参数,假如现在 READZCB 这个函数已经成功了,那你实际应该是怎么用的,写一小 ...

(READZCB la)
(READZCB col)
(READZCB lts)
实际就是这样用啊、不过自定义函数里面的内部不止是一段代码、还有其他的内容、我是为了让大家看懂、就放了最主要这个

点评

这样能用吗?你给的参数是要实际的东西,要么具体数据要么对象实体  发表于 2023-12-13 12:35
发表于 2023-12-13 13:20:48 | 显示全部楼层
本帖最后由 llsheng_73 于 2023-12-14 13:09 编辑

  1. (defun READZC(str val / va)
  2.   (set(read str)
  3.       (if(setq va(vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\"" str))
  4.         va val))
  5.   )


_$ (defun READZC(str val)
  (set(read str)
      (if(set(read str)(vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\"" str))
        str val))
  )
READZC
_$ la
nil
_$ col
nil
_$ (READZC "col"1)
1
_$ col
1
_$ (READZC"la""图层1")
"图层1"
_$ la
"图层1"
_$(vl-registry-write "HKEY_CURRENT_USER\\Software\\NUM\"" "la""图层2")

"图层2"


$ (READZC"la""图层1")
"图层2"
_$ la
"图层2"
_$

点评

基本就是这个意思、感谢大神  发表于 2023-12-13 20:28
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 03:54 , Processed in 0.146813 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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