wgij007 发表于 2021-1-18 14:04:32

顶一下

wgij007 发表于 2021-1-19 08:20:32

没为法吗

wgij007 发表于 2021-1-25 21:17:40

带点希望的顶一下

wgij007 发表于 2021-3-1 17:50:49

再顶一下

vitalgg 发表于 2021-3-1 19:10:54

本帖最后由 vitalgg 于 2021-3-1 19:45 编辑

一定要注意程序中说明的条件。下面这是有多个空格且有自定义格式的字串样例,需要分析这个;到} 之间都是空格或<TAB>之类的无显示字串。
{\fVerdana|b0|i0|c0|p34;}

(defun string:from-lst(lst Separator)"列表转成字符串"
(if (cdr lst)
      (strcat (car lst) Separator (string:from-lst (cdr lst) Separator))
      (car lst)))

(defun string:to-lst (str Separator / pos)
"字符串转成列表"
(if (setq pos (vl-string-search Separator str))
      (cons (substr str 1 pos)
            (string:to-lst (substr str (+ pos 1 (strlen Separator))) Separator))
      (list str)))

(defun remove-mtext-lastspace ();;"去多行文本最后一行的空格(只有一个空格,多了还得改,还有最后的空格不能有自己样式。就是一个纯空格)"
(setq en0 (car (entsel)))
(setq strlst (string:to-lst (cdr (assoc 1 (entget en0))) "\\P"))
(if (= " " (last strlst))
         (entmod
          (subst
         (cons 1 (string:from-lst (reverse (cdr (reverse strlst))) "\\P"))
         (assoc 1 (entget en0)) (entget en0)))))
(defun c:tt () (remove-mtext-lastspace))




ninja37 发表于 2021-3-2 18:00:45

顶一下

wgij007 发表于 2021-3-4 17:50:13

vitalgg 发表于 2021-3-1 19:10
一定要注意程序中说明的条件。下面这是有多个空格且有自定义格式的字串样例,需要分析这个;到} 之间都是空 ...

不行,没作用

vitalgg 发表于 2021-3-4 18:05:35

wgij007 发表于 2021-3-4 17:50
不行,没作用

http://atlisp.cn/static/del-last-space.gif

运行条件不一样。

wgij007 发表于 2021-3-5 08:33:30

vitalgg 发表于 2021-3-4 18:05
运行条件不一样。

我用的是06版的,是不是这个问题呀

lee50310 发表于 2021-3-5 13:05:36

本帖最后由 lee50310 于 2021-3-11 20:38 编辑

試試這個程式



(defun c:tt ()
               (vl-load-com)
               (setq ss(ssget'((0 . "MTEXT"))))
       (repeat (setq i   (sslength ss))         
         (setq ssn (ssname ss (setq i(1- i)))
                  entdat (entget ssn)
                  txt(cdr (assoc 1 entdat))                         ;讀取文字內容
            txt2txt
            old_t "\\P"
            new_t " "
               )
   
            (while (vl-string-search "\\P" txt)                     ;判斷是否還有換行符號
               (setq txt(vl-string-subst new_t old_t txt))      ;去掉字串內的換行符號
      )
                                                                           
            (setq new_txt( cons 1 txt))   
            (setq old_txt( cons 1 txt2))
      (setq entdat (subst new_txt old_txt entdat))          ;更新資料串列
            (entmod entdat)                                           ;更新螢幕上的元體
       )      
            (princ)
)





页: 1 [2] 3 4
查看完整版本: 可以去掉多行文字的空行吗,能框选