[求助]帮我看看这段有问题的代码
<BR><FONT face=宋体 size=2>目的:是把单行文本分解成单个字。<BR>我写了一段代码,如果单行文本是字母,能分解;如果单行文本是文字,却分解不了(不知道单行文本是文字,为啥就分解不了?)<BR>代码如下:<BR></FONT><DIV style="MARGIN: 5px 20px 20px">
<DIV class=smallfont style="MARGIN-BOTTOM: 2px"><FONT face=宋体,verdana,arial,helvetica>代码:</DIV><PRE class=alt2 style="BORDER-RIGHT: 1px inset; PADDING-RIGHT: 6px; BORDER-TOP: 1px inset; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; MARGIN: 0px; OVERFLOW: auto; BORDER-LEFT: 1px inset; WIDTH: 99%; PADDING-TOP: 6px; BORDER-BOTTOM: 1px inset"><FONT style="FONT-SIZE: 10pt" face="宋体,verdana, Airal,Helvetica,Geneva">
<FONT face="courier new">
(defun c:tt()
(setq ent(entsel "\n选择文字:")
entname(car ent)
entdate(entget(car ent))
)
(command "erase" entname "")
(setq str(cdr(assoc 1 entdate))
n(strlen str)
strlst(assoc 1 entdate)
str_idx(car(cdr(assoc 10 entdate)))
str_idy(cadr(cdr(assoc 10 entdate)))
str_idlst(assoc 10 entdate)
strh (cdr(assoc 40 entdate))
strs(cdr(assoc 41 entdate))
w(* 0.66 strh strs)
whalf(/ w 2)
d(+ w whalf)
i 1
)
(repeat n
(setq strchar(substr str i 1)
strcharlst(cons '1 strchar)
newstr_idx(+ str_idx (* d (1- i)))
str_idxy(list newstr_idx str_idy 0.0)
newstr_idlst(cons '10 str_idxy)
entdate(subst strcharlst strlst entdate)
str_idlst(assoc 10 entdate)
entdate(subst newstr_idlst str_idlst entdate)
strlst(assoc 1 entdate)
)
(entmake entdate)
(setq i (1+ i))
)
(princ)
)
</FONT>
</FONT></PRE></FONT></DIV> <P>如果(> (ascii str) 128),则认为是中文字,此时2字节为1个字。</P> <P>在晓东论坛里解决了。</P>
<P> </P>http://p4.xdcad.net/forum/showthread.php?s=&postid=2882148#post2882148
页:
[1]