wharan 发表于 2024-12-1 20:32:51

read 函数怎么保留字符串的大小写格式?

本帖最后由 wharan 于 2024-12-1 20:47 编辑

如题,(read "AbCdEfG")执行后返回ABCDEFG。我希望返回值保留原来的大小写格式AbCdEfG,应该怎么做?

菜卷鱼 发表于 2024-12-13 18:09:24

wharan 发表于 2024-12-9 12:47
从文件读取保存的变量或者set_tile 、get_tile,当给tile 赋值或者取值时,大小写是不同,除非用类似strc ...

我一直用的setenv ,getenv ,没出过问题啊

(defun mx_tog_env ( / h z)
(setq z (mapcar 'get_tile '("z_dh" "z_mc" "z_sl" "z_cl" "z_bz")))
(setenv "mx_z_act" (strjoin z "-"))
(setq h (mapcar 'get_tile '("z_dh" "h_mc" "h_sl" "h_cl" "h_bz")))
(setenv "mx_h_act" (strjoin h "-"))
)
(defun mx_tog_init (/ zenv henv z h)
(setq zenv (getenv "mx_z_act"))
(setq henv (getenv "mx_h_act"))
(if (null zenv)
    (progn
    (setq zenv "0-0-0-0-0")
    (setenv"mx_z_act" zenv))
)
(if (null henv)
    (progn
    (setq henv "0-0-0-0-0")
    (setenv"mx_h_act" henv))
)
(setq z (split zenv "-"))
(setq h (split henv "-"))
(mapcar '(lambda (x y)
             (set_tile x y)
           )
          '("z_dh" "z_mc" "z_sl" "z_cl" "z_bz")
          z
)
(mapcar '(lambda (x y)
             (set_tile x y)
           )
          '("h_dh" "h_mc" "h_sl" "h_cl" "h_bz")
          h
)
)

wharan 发表于 2024-12-9 12:47:03

菜卷鱼 发表于 2024-12-9 08:32
setenv、getenv配合使用

从文件读取保存的变量或者set_tile 、get_tile,当给tile 赋值或者取值时,大小写是不同,除非用类似strcat函数全部转换。

wharan 发表于 2024-12-2 14:37:41

tryhi 发表于 2024-12-2 09:54
如果你关心read之后的大小写,那证明你read用错地方了

主要用在对话框的数据保存和读取。set_tile对大小写是有区别的

黄翔 发表于 2024-12-1 21:00:37

read之前保存下这个字符串不就可以了.

13605 发表于 2024-12-1 21:44:39

试试(read (vl-prin1-to-string"AbCdEfG"))

飞雪神光 发表于 2024-12-1 21:46:19

read后大小写没有影响吧 反正运行时你也看不到 这就是一个变量

fangmin723 发表于 2024-12-1 22:18:55

把字符串放在list

wharan 发表于 2024-12-1 22:19:39

飞雪神光 发表于 2024-12-1 21:46
read后大小写没有影响吧 反正运行时你也看不到 这就是一个变量

就是看到了这个,随便问一下

vitalgg 发表于 2024-12-2 08:34:57

本帖最后由 vitalgg 于 2024-12-2 09:13 编辑

(read "\"AbCdEfG\"")

符号不分大小写,只有字符串才分大小写。

tryhi 发表于 2024-12-2 09:54:49

如果你关心read之后的大小写,那证明你read用错地方了

kozmosovia 发表于 2024-12-2 15:29:28

read字符串之后,就成symbol了,symbol是不分大小写的。
页: [1] 2
查看完整版本: read 函数怎么保留字符串的大小写格式?