autolisp用substr截取汉字?
发布网友
发布时间:2023-07-05 00:15
我来回答
共3个回答
热心网友
时间:2024-11-19 13:44
你这个问题应该是中文编码出现的问题;你要用vlisp编辑窗口打开代码后,看里面的字符串是不是乱码了,如果乱码了在编辑器里面重新输入一下就可以正常显示了
热心网友
时间:2024-11-19 13:45
自定义一个判断汉字个数的函数,在判断就可以了
;(strnum "df的");返回结果---> 3
(defun strnum (str / i strx)
(if (= str "")
(setq i 0)
(progn
(setq i 0)
(setq strx (vl-string->list str))
(while
(if (< (car strx) 129)
(setqi (1+ i)
strx (cdr strx)
)
(setqi (1+ i)
strx (cddr strx)
)
)
)
)
)
i
)
热心网友
时间:2024-11-19 13:45
1个文字占2个位置,数字字母占1个位置所以:
(substr "222图层" 4 7)跟(substr "222图层" 4 4)一样,返回:图层
(substr "222图层" 4 2)返回:图
(substr "222图层" 4 1)、(substr "222图层" 4 3)返回的后面那个字只有一半所以返回错误
(substr "222图层" 5 4)指针指向半个文字,所以返回错误
(substr "222图层" 6 4)返回:层