找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 969|回复: 5

[求助] [求助]:如何将数字与汉字相分离

[复制链接]
发表于 2007-12-10 13:32:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何将数字与汉字相分离,如:"123#字节"=" 123"+"#字节"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-12-10 15:57:26 | 显示全部楼层
转换为ascii码后,根据码的大小进行识别。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-12-10 23:15:04 | 显示全部楼层
自己用的内部函数。因为自定义了一些字符,所以复杂了点。你看需要调整吧



  1. (defun cy_txt_sea_t(str str1 / IN K STRL STRL1 TXT)
  2.   ;;;从头开搜str1字符的位置,返回位置数,无返回nil
  3.   (if (wcmatch str (strcat "*" str1 "*"))(progn
  4.     (setq strl(strlen str)strl1(strlen str1)in 0 k t)
  5.     (while (and k (setq txt(substr str (setq in(1+ in)) strl1)))
  6.       (if (= txt str1)(setq k nil))
  7.     ))
  8.     (setq in nil)
  9.   )in
  10. )

  11. (defun cy_str2strb(str / IN IN1 LS ST1 STRB)  ;;;按shx文字的规律将字串分解为字串表
  12.   (setq in 1 strb'()
  13.         ls (strlen str))
  14.   (while (<= in ls)
  15.     (setq st1 (substr str in 1))
  16.     (cond
  17.       ((= "%" st1)
  18.         (if (= "%%" (setq st1 (substr str in 2)))
  19.           (cond
  20.             ((wcmatch (setq st1 (substr str in)) "%%[d p c % D P C]*")
  21.               (setq strb(append strb (list (substr str in 3)))in(+ 3 in)))
  22.             ((member (setq st1 (substr str in 3)) '("%%o" "%%u""%%O" "%%U"))
  23.               (setq in(+ 3 in)))
  24.             ((wcmatch (setq st1 (substr str in)) "%%141*%%142*");;;上标上
  25.               (setq in1(cy_txt_sea_t st1 "%%142")
  26.                     strb(append strb (list (substr str in (+ in1 4))))
  27.                     in(+ in1 4 in))
  28.             )
  29.             ((wcmatch (setq st1 (substr str in)) "%%143*%%144*")
  30.               (setq in1(cy_txt_sea_t st1 "%%144")
  31.                     strb(append strb (list (substr str in (+ in1 4))))
  32.                     in(+ in1 4 in))
  33.             )
  34.             ((wcmatch (setq st1 (substr str in)) "%%147*%%148*")
  35.               (setq in1(cy_txt_sea_t st1 "%%148")
  36.                     strb(append strb (list (substr str in (+ in1 4))))
  37.                     in(+ in1 4 in))
  38.             )
  39.             ((wcmatch (setq st1 (substr str in)) "%%149*%%150*")
  40.               (setq in1(cy_txt_sea_t st1 "%%150")
  41.                     strb(append strb (list (substr str in (+ in1 4))))
  42.                     in(+ in1 4 in))
  43.             )
  44.             ((wcmatch (setq st1 (substr str in)) "%%145*%%146*%%144*")
  45.               (setq in1(cy_txt_sea_t st1 "%%144")
  46.                     strb(append strb (list (substr str in (+ in1 4))))
  47.                     in(+ in1 4 in))
  48.             )
  49.             (t (setq strb(append strb (list(substr str in 5)))in(+ 5 in)))
  50.           )
  51.         )
  52.       )
  53.       ((> (ascii (setq st1 (substr str in 1))) 128)
  54.         (setq strb(append strb (list (substr str in 2)))in(+ 2 in))
  55.       )
  56.       (t (setq strb(append strb (list(substr str in 1)))in(+ 1 in)))
  57.     )
  58.   )strb
  59. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-10 23:55:26 | 显示全部楼层
还是要说声谢谢,尽管一头雾水
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6820个

财富等级: 富甲天下

发表于 2007-12-11 09:24:19 | 显示全部楼层
(setq str "123#字节"
      idx (vl-string-position (ascii "#") str)
     strH (substr str 1 idx)
     str# (substr str (1+ idx))
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-12-14 14:03:35 | 显示全部楼层
http://www.xdcad.net/forum/showthread.php?s=&threadid=645543

  1.   [FONT=courier new]
  2. 命令: (TXT-SPLIT-NUMSTR "123#字节")
  3. ("123" "#字节")

  4. 命令: (TXT-SPLIT-NUMSTR "123#wd字d阿破產d节")
  5. ("123" "#wd字d阿破產d节")

  6. 命令: (TXT-SPLIT-NUMSTR "123#wd字1d阿9破4產5d节")
  7. ("1231945" "#wd字d阿破產d节")
  8.   [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-6-30 14:04 , Processed in 0.187541 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表