找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2666|回复: 15

[原创]:去字符串内半角空格及全角空格

[复制链接]
发表于 2005-11-3 10:57:27 | 显示全部楼层 |阅读模式

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

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

×
本段代码可以去除一字符串内半角空格及全角空格
(defun del_space(tex /  sub_text l_tex tex1);;;去字符串内半角空格及全角空格 
  (setq l_tex (strlen tex) tex1 "")
  (repeat l_tex
    (setq sub_text (substr tex 1 1) tex (substr tex 2))
    (if (and(/= sub_text " ")(/= sub_text (chr 161))) (setq tex1 (strcat tex1 sub_text)))
  )
  tex1
)

这样是否可读性更强?
  1. [FONT=courier new]
  2. ;;;去字符串内半角空格及全角空格 
  3. (defun del_space (tex / sub_text l_tex tex1)
  4.   (setq        l_tex (strlen tex)
  5.         tex1  ""
  6.   )
  7.   (repeat l_tex
  8.     (setq sub_text (substr tex 1 1)
  9.           tex           (substr tex 2)
  10.     )
  11.     (if        (and (/= sub_text " ") (/= sub_text (chr 161)))
  12.       (setq tex1 (strcat tex1 sub_text))
  13.     )
  14.   )
  15.   tex1
  16. )
  17. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-3 12:53:21 | 显示全部楼层
[php]
(defun delspace (str)
  (vl-string-trim " " (vl-string-trim " " str))
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-3 14:24:31 | 显示全部楼层
在下衷心向狂刀先生致敬!但在下偏向于纯LISP方向,它具有兼容性好的特点,适合版本多!虽然它的速度欠慢,除非它不能解决问题了,则另当别论。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-11-3 21:11:04 | 显示全部楼层
狂刀先生:
    为何(delspace "1 2 3 4 5 6 7 8"),会得到"1 2 3 4 5 6 7 8",
而不是“1234578”呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-3 21:30:12 | 显示全部楼层
  1. [FONT=courier new]
  2. ;;去字符串内半角空格及全角空格
  3. (defun delspace (string)
  4.     (while (vl-string-search " "  string)
  5.       (setq string (vl-string-subst "" " " string))
  6.     )
  7.   (while (vl-string-search " "  string)
  8.       (setq string (vl-string-subst "" " " string))
  9.     )
  10.   string
  11. )
  12. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-3 21:35:34 | 显示全部楼层
命令: (del_space "1 2 3 4 5 6 7 8")
"12345678"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-3 22:04:22 | 显示全部楼层
不好意思,我前面发的那个只是去掉前后空格:)xixi
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-3 22:24:44 | 显示全部楼层
感谢xyp1964的鼓励,只是在下暂时还没学会怎样把代码发得更适合读一些。以后我会更加多学习!致敬!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-3 23:43:10 | 显示全部楼层
最初由 yuer0103 发布
[B]命令: (del_space "1 2 3 4 5 6 7 8")
"12345678" [/B]


(del_space " 〈 〈〈 ") -> "创?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2005-11-4 07:24:50 | 显示全部楼层

Re: [原创]:去字符串内半角空格及全角空格

最初由 yuer0103 发布
[B]本段代码可以去除一字符串内半角空格及全角空格
(defun del_space(tex /  sub_text l_tex tex1);;;去字符串内半角空格及全角空格 
  (setq l_tex (strlen tex) tex1 "")
  (repeat l_tex
    (setq sub_text (s... [/B]


全角空格的字符代码为“A1A1”,你的代码中逢“A1”即删除,会删除所有包含“A1”代码的“半个汉字”。例:
命令: (del_space "痢 选 ")            ;代码“C1A1 A1A1 D1A1 20”
"裂"                                                    ;代码“C1D1”

可以这样:[php](defun del_space (tex / sub_text l_tex tex1)
  (setq        l_tex (strlen tex)
        tex1  ""
  )
  (repeat l_tex
    (setq sub_text (substr tex 1 1)
          tex           (substr tex 2)
    )
    (if        (not
          (or (= sub_text " ")
              (and (= sub_text (chr 161))
                   (= (ascii tex) 161)
              )
          )
        )
      (setq tex1 (strcat tex1 sub_text))
    )
  )
  tex1
)[/php]
例:命令: (del_space "痢 选 ")           ;代码“C1A1 A1A1 D1A1 20”
"痢选"                                                       ;代码“C1A1 D1A1”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-4 08:31:04 | 显示全部楼层
非常高兴,感谢ll_j [和狂刀二位先生!以后还请多多赐教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-30 09:25:27 | 显示全部楼层
太高深了,没看明白
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2008-7-9 16:22:00 | 显示全部楼层
哪个高手搞个完整的程序出来呀,可以选取MTEXT和TEXT的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 16:53 , Processed in 0.302286 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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