lengliqun 发表于 2008-4-21 21:41:00

cad2004测试,8楼程序可将点号“.”变成“]”输出,但“]”后面的字符不见了,为何?

ZZXXQQ 发表于 2008-4-23 15:19:00

子程序有误。


(defun chchar (ss eqq wt / s2 tmp i)
(setq i 1 tmp "")
(while (/= (setq s2 (substr ss i 1)) eqq) (setq tmp (strcat tmp s2) i (1+ i)))
(strcat tmp wt (substr ss (1+ i)))
)

lengliqun 发表于 2008-4-23 18:53:00

本帖最后由 作者 于 2008-4-23 19:07:20 编辑 <br /><br /> <p>;<font color="#ff0033">综合明经 ZZXXQQ与晓东 zxq0220的程序如下:</font></p><p>;替换分号后字符 明经 ZZXXQQ 2008.4.21<br/>(defun c:tt2 ()<br/>&nbsp; (if (setq news (getstring "\nEnter New string 输入新字串 &lt;2]25&gt; :")) (progn<br/>&nbsp;&nbsp; (setq news (if (= (strlen news) 0) "2]25" news))<br/>&nbsp;&nbsp; (while (wcmatch news "*`.*") (setq news (chchar news "." "]")))<br/>&nbsp;&nbsp; (if (setq ss (ssget '((0 . "TEXT") (1 . "*;*")))) (progn<br/>&nbsp;&nbsp;&nbsp; (setq i -1)<br/>&nbsp;&nbsp;&nbsp; (repeat (sslength ss)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ent (entget(ssname ss i))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txt (cdr(assoc 1 ent))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j (strlen txt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl j)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (while (and (&gt; j 1) (/= (setq s1 (substr txt j 1)) ";")) (setq j (1- j)))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq ent (subst (cons 1 (strcat (substr txt 1 j) news)) (assoc 1 ent) ent))<br/>&nbsp; (entmod ent)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; ))<br/>&nbsp; ))<br/>&nbsp; (princ)<br/>)</p><p></p><p>;替换分号前字符 明经 ZZXXQQ 2008.4.16<br/>(defun c:tt1 ()<br/>&nbsp; (if (setq news (getstring "\nEnter New string 输入新字串 &lt;2]25&gt; :")) (progn<br/>&nbsp;&nbsp; (setq news (if (= (strlen news) 0) "2]25" news))<br/>&nbsp;&nbsp; (while (wcmatch news "*`.*") (setq news (chchar news "." "]")))<br/>&nbsp;&nbsp; (if (setq ss (ssget '((0 . "TEXT") (1 . "*;*")))) (progn<br/>&nbsp;&nbsp;&nbsp; (setq i -1)<br/>&nbsp;&nbsp;&nbsp; (repeat (sslength ss)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ent (entget(ssname ss i))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txt (cdr(assoc 1 ent))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl (strlen txt))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (while (and (&lt; j sl) (/= (setq s1 (substr txt j 1)) ";")) (setq j (1+ j)))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq ent (subst (cons 1 (strcat news (substr txt j))) (assoc 1 ent) ent))<br/>&nbsp; (entmod ent)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; ))<br/>&nbsp; ))<br/>&nbsp; (princ)<br/>)</p><p>;子程序</p><p>;晓东 zxq0220 2008.4.18 <br/>;明经 ZZXXQQ 2008.4.22修改<br/>(defun chchar (ss eqq wt / s2 tmp i)<br/>&nbsp; (setq i 1 tmp "")<br/>&nbsp; (while (/= (setq s2 (substr ss i 1)) eqq) (setq tmp (strcat tmp s2) i (1+ i)))<br/>&nbsp; (strcat tmp wt (substr ss (1+ i)))<br/>)</p>;谢谢ZZXXQQ、zxq0220

doremidai 发表于 2008-5-18 11:15:00

很好用的程序。请教<strong><font face="Verdana" color="#da2549">ZZXXQQ,如何把文字从空格处断开自动变2行,如"KL2-22(11) 200X700",括号后为空格,从空格处把这行文字断开成2行,行距由用户输入。</font></strong>

claotlaot 发表于 2008-6-29 18:23:00

<p>对自己没太太的用处,但是还是收藏了</p>

baolanjun 发表于 2008-7-22 12:04:00

<p>要回复5次,学习一下</p><p></p>

qingtao210 发表于 2008-9-8 22:25:00

谢谢,蛮用用

tohteg 发表于 2008-10-10 15:08:00

哈哈,这个程序有意思。不错

fyq304 发表于 2008-10-26 13:27:00

呵呵,版主真是高手啊
页: 1 [2]
查看完整版本: [求助](已完成)求lsp程序,选择含分号的字符串,将分号“;”前的字符改成用户输入的