jdhszh 发表于 2008-4-4 21:12:00

[原创]分解字符串为单个字符表的子程序

<p>(defun qzs(txt / a txt1 )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a 1) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq hsc '()) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq txt1 (substr txt a 1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (not (eq txt1 "")) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (&gt; (ascii txt1) 160) ;;判断文字串中是否有汉字<br/>&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq wz (substr txt a 2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a(+ a 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq wz (substr txt a 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (setq hsc(append (list wz) hsc))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a (1+ a))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq txt1 (substr txt a 1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq hsc (reverse hsc))<br/>&nbsp; )</p><p>测试 (setq x "中国人民银行123vd/&gt;")</p><p>(qzs x)</p><p>("中" "国" "人" "民" "银" "行" "1" "2" "3" "v" "d" "/" "&gt;")</p>

aeo000000 发表于 2008-4-5 14:59:00

<p>%%P</p><p></p><p>???</p>

jdhszh 发表于 2008-4-7 11:38:00

%%P很少碰到所以没做,((= (ascii stxt) 37) 文字是: %加上就行啦

dinosaurhxe 发表于 2008-4-7 12:42:00

<p>不错,支持一下!</p>

wangph 发表于 2008-10-27 15:12:00

<p>这个程序如何通过的呢,我试验好像出不来结果呀。</p>

jxlsp 发表于 2008-10-27 16:16:00

<p>可以呀</p><p>(defun qzs(txt / a txt1 hsc)<br/>&nbsp; (setq a 1) <br/>&nbsp; (setq hsc '()) <br/>&nbsp; (setq txt1 (substr txt a 1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; (while (not (eq txt1 "")) <br/>&nbsp;&nbsp;&nbsp;&nbsp; (if (&gt; (ascii txt1) 128) ;;判断文字串中是否有汉字<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq wz (substr txt a 2)a(1+ a))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq wz (substr txt a 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (setq hsc(cons wz hsc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a(1+ a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txt1 (substr txt a 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp; (setq hsc (reverse hsc))<br/>&nbsp;)</p><p>测试 (qzs "中国人民银行123vd/%%P&gt;")</p><p>("中" "国" "人" "民" "银" "行" "1" "2" "3" "v" "d" "/" "%" "%" "P" "&gt;")</p>

wangph 发表于 2008-10-27 16:33:00

在我电脑上(not (eq txt1 ""))是通不过的,汉字时为nil

004 发表于 2012-12-3 01:56:13

不错的源码,顶起.
页: [1]
查看完整版本: [原创]分解字符串为单个字符表的子程序