品茗新秀 发表于 2014-3-3 11:54:00

求去除文字最前面和最后面空格,中间空格不去除

求去除文字最前面和最后面空格,中间空格不去除,即去除字符串最前面的和最后面的空字符串,中间空字符串不去除

q3_2006 发表于 2014-3-3 11:54:01

(defun c:tt ( / dxf1 e el i ss)
(vl-cmdf "justifytext" (ssget "x" '((0 . "*text"))) "" "l")
(if (setq ss (ssget "x" '((0 . "*text"))))
    (repeat (setq i (sslength ss))
(setq e (ssname ss (setq i (1- i)))
       el (entget e)
       dxf1 (assoc 1 el)
)
(entmod (subst
    (cons 1 (vl-string-trim " " (cdr dxf1)))
    dxf1
    el
)
)
      )
)
)

Gu_xl 发表于 2014-3-3 12:18:14

用 vl-string-trim 函数!

qiushizhda 发表于 2014-3-3 13:04:41

本帖最后由 qiushizhda 于 2014-3-3 13:13 编辑

新手练习,用了G版提供参数vl-string-trim ,你试试 呵呵
(defun c:tt (/ wzxz wz-i)
(vl-load-com)
(setq wzxz (ssget '((0 . "text") (1 . "* , *"))))
(if wzxz
    (progn(setq wz-i (sslength wzxz))
            (repeat(sslength wzxz)
                     (entmod (subst(cons 1 (vl-string-trim " " (cdr (assoc 1 (entget (ssname wzxz (1- wz-i))))))) (assoc 1 (entget (ssname wzxz (1- wz-i)))) (entget (ssname wzxz (1- wz-i))))
)
(setq wz-i (1- wz-i))))
(alert "无需处理")))

qiushizhda 发表于 2014-3-3 13:07:02

函数学习
vl-string-trim
从字符串的开始和结束删除指定字符
(vl-string-trim char-set str)

品茗新秀 发表于 2014-3-3 14:30:14

本帖最后由 品茗新秀 于 2014-3-3 14:45 编辑

qiushizhda 发表于 2014-3-3 13:07 http://bbs.mjtd.com/static/image/common/back.gif
函数学习
vl-string-trim
从字符串的开始和结束删除指定字符


程序执行后,字符串各单字符间距保存原来的样子,现在是删除了空字符,可以看上去太另扭了








文字间距应调成原来的大小


ll_j 发表于 2014-3-3 15:48:59

品茗新秀 发表于 2014-3-3 14:30 static/image/common/back.gif
程序执行后,字符串各单字符间距保存原来的样子,现在是删除了空字符,可以看上去太另扭了




先用ET的文本对齐点命令把要去除空格的字符串改成左对齐(去前面空格)或右对齐(去后面空格),楼主这个字符串是fit对齐方式,在两点间是充满的,所以直接去空格是要改变显示的。

xyp1964 发表于 2014-3-4 00:25:06



品茗新秀 发表于 2014-3-4 12:20:08

xyp1964 发表于 2014-3-4 00:25 static/image/common/back.gif


程序中第一个字符是空格,程序取后面的,如果前几个都是空字符串,按程序就不对了,大师帮查一下

xyp1964 发表于 2014-3-4 12:28:43

品茗新秀 发表于 2014-3-4 12:20 static/image/common/back.gif
程序中第一个字符是空格,程序取后面的,如果前几个都是空字符串,按程序就不对了,大师帮查一下


页: [1] 2
查看完整版本: 求去除文字最前面和最后面空格,中间空格不去除