明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1771|回复: 9

[提问] 这个批量替换源码如何改为全字匹配模式呢?

[复制链接]
发表于 2016-6-5 16:10:08 | 显示全部楼层 |阅读模式
这个网上一个大神做的批量替换程序,程序见附件,但这个程序有个问题就是替换数字时容易出错,比如我创建了一个替换表1,2   11,3   我替换11的时候就会替换成22,而不是3,所以请大神们帮我更改一下这个源码,使之能够全字匹配替换。

本帖子中包含更多资源

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

x
发表于 2016-6-6 20:32:30 | 显示全部楼层
你把11,3放到1,2前面就没有这个问题
发表于 2019-9-16 12:47:31 | 显示全部楼层
终于找到合适的了,多谢分享
发表于 2021-9-18 09:00:42 | 显示全部楼层
这是熊掌的程序啊
发表于 2022-5-6 00:30:15 | 显示全部楼层
全字匹配,也就是你的文字只有这个几个字符才能实现。其次实现就是判断的时候不用查找直接用等于判断就可以了。原来的程序估计写时间应该比较早,判断过程挺复杂的。全字匹配的话可以直接 :
        (if (= oldch  etext)  (setq newtext newch)   )
发表于 2022-5-6 09:05:15 | 显示全部楼层
muwind 发表于 2022-5-6 00:30
全字匹配,也就是你的文字只有这个几个字符才能实现。其次实现就是判断的时候不用查找直接用等于判断就可以 ...

“muwind”你好,
能不能麻烦你出手改一下,确实无法全字匹配。
发表于 2022-5-6 22:14:48 | 显示全部楼层
本帖最后由 muwind 于 2022-5-6 22:22 编辑

全字匹配真的很简单,
如果你所有的替换都要全字匹配 可以把repall改名为KX-reptext替换原来的函数
如果你要保留部分替换,可以在原来的代码基础上增加一个选项,
设置为全字匹配的时候调用repall进行替换,不需要全字匹配的时候用原来的KX-reptext
选择集判断我习惯在主程序里面判断 是否为nil,在子函数里面我觉得还是干净点比较好
  1. (defun repall (SS oldch newch / ss  ct0 edata etext )
  2.       (setq ssl (sslength ss)    ct0 0      )
  3.       (while (< ct0 ssl)
  4.         (setq edata (entget (ssname ss ct0))       etext (cdr (assoc 1 edata))  )
  5.         (if (= oldch etext)  (entmod (subst (cons 1 newch) (assoc 1 edata) edata)))
  6.         (setq ct0 (1+ ct0))
  7.       )
  8. )

  9. (DEFUN C:tt()
  10.     (setvar "cmdecho" 0)
  11.    (if   (setq ss  (SSGET":s" '((0 . "*TEXT"))) )
  12.       (progn
  13.         (repall SS "全字" "全字匹配")
  14.         (repall SS "匹配全字" "全字匹配")
  15.       )
  16.      (princ "您没有选择任何文字,我喝西北风去了")
  17.     )
  18.     (PRINC)
  19. )


发表于 2022-8-1 17:20:19 | 显示全部楼层
感谢大佬分享
发表于 2023-7-12 14:33:23 | 显示全部楼层
输入QQ,读取直接nil,路径按照默认设置,读取不到
发表于 2023-7-14 18:29:41 | 显示全部楼层
muwind 发表于 2022-5-6 22:14
全字匹配真的很简单,
如果你所有的替换都要全字匹配 可以把repall改名为KX-reptext替换原来的函数
如果 ...

明明有对应文字,却显示没有选择任何文字;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 22:20 , Processed in 0.195963 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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