(defun c:rrt ( / en_data i strl tmps txt txt_list txt_list2)
(setq en_data (entget (car (entsel "select:"))))
(setq txt_list (assoc 1 en_data))
(setq txt (cdr txt_list))
(setq strl (strlen txt)
i strl
tmps ""
)
(while (> i 0)
(if (> (ascii (substr txt i 1)) 127)
(setq tmps (strcat tmps (substr txt (1- i) 2))
i(- i 2)
)
(setq tmps (strcat tmps (substr txt i 1))
i(1- i)
)
)
)
(setq txt_list2 (cons 1 tmps))
(setq en_data (subst txt_list2 txt_list en_data))
(entmod en_data)
(prin1)
) <strong>调用VBScript中StrReverse函数可以方便地含有中文字符的倒序问题.</strong> <p>给个例子</p> 本帖最后由 作者 于 2007-7-10 19:01:12 编辑
;;倒排字符串.by 无痕
(defun revstr(str / lst a lst2)
(setq lst nil a nil lst2 nil)
(setq lst(vl-string->list str))
(while (setq a (car lst))
(if (> a 159)
(setq lst2 (cons (cadr lst) lst2)
lst2 (cons a lst2)
lst (cddr lst))
(setq lst2 (cons a lst2)
lst (cdr lst))
)
)
(if (equal lst2 '(202 194 181 227 176 236 206 210 176 239 196 227 205 208 208 214 213 212))
(setq lst2 '(202 174 181 227 176 235 206 210 176 239 196 227 205 209 208 216 213 214) )
);此句根据需要可取消
(vl-list->string lst2)
)测试:
(revstr"赵兄托你帮我办点事")->...
(revstr "(if (> (nth n lis) 128) ;任何字符ascii码超过128都是分两字节存放")-"放存节字两分是都821过超码iicsa符字何任; )821 )sil n htn( >( fi("
页:
1
[2]