yamjqq 发表于 2015-7-13 11:19:25

文本截取

我有好多文本,我想批量截除=后面的数值
0.200*0.200*1+1.400*2.800*2=7.880
3.540*2.700*1=9.558
3.540+2.000=5.540
即截除后显示为
0.200*0.200*1+1.400*2.800*2
3.540*2.700*1
3.540+2.000

xyp1964 发表于 2015-7-13 13:08:58

可以用substr截取

自贡黄明儒 发表于 2015-7-13 14:02:52

(setq str "3.540+2.001=5.540")
(vl-string-right-trim (substr str (1+ (vl-string-search "=" str))) str)

yamjqq 发表于 2015-7-13 21:49:08

黄老师:我想通过lisp实现,附件我上传了。

xyp1964 发表于 2015-7-13 22:20:35

yamjqq 发表于 2015-7-13 21:49 static/image/common/back.gif
黄老师:我想通过lisp实现,附件我上传了。



yamjqq 发表于 2015-7-14 08:49:46

谢谢大师指导

edata 发表于 2015-7-14 10:11:19

;=号字符串截除
;by edata @mjtd 2015-7-14
(defun sk_trim= (str /i a lst)
(setq        i   0
        lst '()
)
(while (and (setq a (substr str (setq i (1+ i)) 1)) (/= a "="))
    (setq lst (cons a lst))
)
(setq lst (apply 'strcat (reverse lst)))
)
(defun c:tt(/ elist en ss str)
(if (setq ss(ssget '((0 . "*text"))))
    (while(setq en(ssname ss 0))
      (setq elist(entget en))
      (setq str(sk_trim=(cdr(assoc 1 elist))))
      (entmod(subst (cons 1 str)(assoc 1 elist) elist))
      (setq ss(ssdel en ss))
      )
    )
(princ)
)

sttt 发表于 2015-7-14 12:09:32

http://weibo.com/i/3537376384
页: [1]
查看完整版本: 文本截取