使用wcmatch判断中文报错
(Faith-string->num "节点01")(defun Faith-string->num (str / num1)
(setq str (vl-list->string (reverse (vl-string->list str)))
num1 ""
)
(while (wcmatch (substr str 1 1) "")
(setq num1 (strcat (substr str 1 1) num1)
str (substr str 2)
)
)
(list (vl-list->string (reverse (vl-string->list str))) (atoi num1) (strlen num1))
)
请教论坛的各位大神、上面的代码用wcmatch判断中文时总是报错和警告、
提示发生未知意外、应该如何处理啊?
本帖最后由 wzg356 于 2023-3-8 12:44 编辑
(defun aa(str / num n lst a)
(setq num "" n 0)
(setq lst(reverse(vl-string->list str)))
(while
(member(setq a(car lst))(list 46 47 48 49 50 51 52 53 54 55 56 57))
(setq n(1+ n)
num(strcat (chr a) num)
lst(cdr lst)
)
)
(list (substr str 1(- (strlen str) n)) (read num) n)
)
(defun aa (str / str1)
(setq str1(vl-string-right-trim ".0123456789"str))
(list str1(read(substr str(1+(strlen str1)))))
)
只有一个小数点的情况没排出
函数要先defun再调用 d1742647821 发表于 2023-3-7 11:16
函数要先defun再调用
顺序问题咱先不管他了、主要是程序问题 xiaocainiao 发表于 2023-3-7 11:25
顺序问题咱先不管他了、主要是程序问题
先把目的说清楚 xyp1964 发表于 2023-3-7 11:30
先把目的说清楚
目的就是执行时不报错、现在是大部分时候报错、偶尔可以用 xiaocainiao 发表于 2023-3-7 11:38
目的就是执行时不报错、现在是大部分时候报错、偶尔可以用
(defun abc (str / lst a b)
;; (abc "节点01") → ("节点" "01")
(setq lst (vl-string->list str)
a (vl-remove-if-not '(lambda (x) (> x 160)) lst)
b (vl-remove-if '(lambda (x) (> x 160)) lst)
)
(list (vl-list->string a) (vl-list->string b))
) xyp1964 发表于 2023-3-7 11:50
(defun abc (str / lst a b)
;; (abc "节点01") → ("节点" "01")
(setq lst (vl-string->list str ...
谢谢院长、一会我试试 xiaocainiao 发表于 2023-3-7 11:25
顺序问题咱先不管他了、主要是程序问题
我试了,把defun放前面不会报错 xyp1964 发表于 2023-3-7 11:50
(defun abc (str / lst a b)
;; (abc "节点01") → ("节点" "01")
(setq lst (vl-string->list str ...
谢谢院长、这个代码对于"节点01"这种的可以、但是“节点-01”的结果就不对了、我那个代码是“节点-01”结果正确、“节点01”会报错
页:
[1]
2