求助:str 字符串 list 互转的问题
本帖最后由 logitechlike 于 2011-12-29 09:51 编辑(vl-princ-to-stringdata)
(read )
如果数据是数字的列表互转比较方便没有问题
如:(list 10 20 30)
转为字符串(vl-princ-to-string (list 10 20 30)) 返回"(10 20 30)"
再转为列表(read (vl-princ-to-string (list 10 20 30))) 返回(10 20 30)
但是如果是字符串的列表互转有大小写的问题
如:(list "abc" "Abc" "ABC")
转为字符串(vl-princ-to-string (list "abc" "Abc" "ABC")) 返回"(abc Abc ABC)"
再转为列表(read (vl-princ-to-string (list "abc" "Abc" "ABC"))) 返回(ABC ABC ABC)大问题,都变大写了!
有对应办法吗?请各位高手帮忙
-----------------------------------------------2011-12-285楼------------------------------------------------------------
;;;例子没举好
;;;(setq TempStr (vl-princ-to-string (list "abc" "Abc" "ABC")))
(setq TempStr"(abc Abc ABC)")
;;;中间如何处理???
;;;如果是二级list 个数不确定更复杂
(read TempStr) ;;;期望结果(list "abc" "Abc" "ABC")
此路不通得另寻他道
请楼主以实例说说... 如果自己知道字符串列表的固定长度, 格式;
可以用vl-string-search判断空格处理,自己写解析函数
我希望有个通用的,要不每种都得对应 转为字符串(vl-princ-to-string (list "abc" "Abc" "ABC")) 返回"(abc Abc ABC)"
(read "(abc Abc ABC)")后abc Abc ABC都分别作为变量列入新表(ABC ABC ABC)
要连字符引号一齐转,read才能转成含字符串的表
列表(read (vl-prin1-to-string (list "abc" "Abc" "ABC")))返回("abc" "Abc" "ABC") byghbcx 发表于 2011-12-28 17:38 static/image/common/back.gif
转为字符串(vl-princ-to-string (list "abc" "Abc" "ABC")) 返回"(abc Abc ABC)"
(read "(abc Abc ABC)" ...
多谢!
vl-prin1-to-string 和 read是这种
;;;例子没举好
(setq TempStr (vl-princ-to-string (list "abc" "Abc" "ABC")))
;;;中间如何处理???
;;;如果是二级list 个数不确定更复杂
(read TempStr) ;;;期望结果(list "abc" "Abc" "ABC")
本帖最后由 xshrimp 于 2011-12-28 21:45 编辑
楼上已经解答了啊
(setq TempStr (vl-prin1-to-string (list "abc" "Abc" "ABC"))) xshrimp 发表于 2011-12-28 21:45 static/image/common/back.gif
楼上已经解答了啊
(setq TempStr (vl-prin1-to-string (list "abc" "Abc" "ABC")))
;;;例子没举好
(setq TempStr"(abc Abc ABC)")
;;;中间如何处理???
;;;如果是二级list 个数不确定更复杂
(read TempStr) ;;;期望结果(list "abc" "Abc" "ABC") logitechlike 发表于 2011-12-29 09:48 static/image/common/back.gif
;;;例子没举好
(setq TempStr"(abc Abc ABC)")
;;;中间如何处理???
看不出abc是作为变量还是作为“abc”字符串 ...如果是二级list 个数不确定更复杂...
建议楼主 就实例多举多些样本,
何者是原素材,所欲转换得出的成果,条列以供调试比对 (defun c:cd()
(setq aa (vl-prin1-to-string (list "abc" "Abc" "ABC")))
(print aa) ;返回"(\"abc\" \"Abc\" \"ABC\")"
(setq aa (read (vl-princ-to-string aa)))
(print aa);返回("abc" "Abc" "ABC")
(setq bb (vl-princ-to-string (list "abc" "Abc" "ABC")))
(print bb) ;返回"(abc Abc ABC)"
(setq bb (read (vl-princ-to-string bb)))
(print bb) ;返回(ABC ABC ABC)
(princ)
)
页:
[1]
2