autolisp里面拆分字串符技巧
;在CAD里面,写程序的时候,需要拆分文字内容;
;如果只有英文就没有问题,如果有中文的话,拆分文字内容需要用ascii来分析
(defun C:tes ( / &_string &k1 &ob1 &ss1)
(if (null vlax-dump-object) (vl-load-com) )
(setq &k1 (car (entsel)))                ;选择文字
(setq &ob1 (vlax-ename->vla-object &k1))  ;变VLA
(setq &_string (vla-get-TextString &ob1))  ;取得文字内容
ascii文字是啥 (setq &ss1 (tes~20150714~1 &_string))    ;取得拆分的文字表
(princ &ss1)                          ;命令行显示拆分后形成的表
(prin1)
)
;;文字内容拆开
(defun tes~20150714~1 (&_string / &_string &_str1 n1 &_ss1) ;拆分字体子程序
(setq &_ss1 '())
(while (/= &_string "")
  (setq &_str1 (substr &_string 1 1) n1 (ascii &_str1))
;读取一个字串符,并得到ascii码
  (if (< n1 128)                      ;英文的ascii码都小于128
  (setq  &_string (substr &_string 2))  ;如果是英文
  (progn
(setq &_str1 (substr &_string 1 2) &_string (substr &_string 3))
;如果是中文就连续取两个
  )
  )
  (setq &_ss1 (cons &_str1 &_ss1))    ;拆分的字体加入表
);while
(reverse &_ss1)                    ;颠倒列表
)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。