明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 35114|回复: 79

多重文本替换程序(2015-12-25更新)

    [复制链接]
发表于 2005-1-29 20:16:00 | 显示全部楼层 |阅读模式
本帖最后由 mikewolf2k 于 2015-12-28 10:40 编辑

AutoCAD的find/replace只支持一个字符串替换,如果要替换多个字符串或者多个文件有相同的字符串要替换就非常麻烦了,因此我编写了一个多重文本替换程序,可以将要替换的文字写在excel中,要替换时只需选中excel中相应单元格就可以了。
使用方法:将要替换的文字写在excel中的A列,替换为B列文字,再选中A列中文本。加载multitextreplace.dvb,按ALT+F8选中执行dvb中multitextreplace函数,执行即可。 新版本更新了下,加了个Batch_singlefolder程序批量处理某文件夹下的所有dwg文件。 2015-12-25再次更新,增加按文件名区别替换功能,请移步34楼。

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

 楼主| 发表于 2015-12-25 12:17:07 | 显示全部楼层
再次更新,增加了文件名,可以同一字符串在不同的文件名中被替换为不同的字符串。
使用方法:
加载dvb,Alt+F8可以看到两个程序,一个是单文件执行,一个是文件夹内多文件批量执行。

打开一个excel文件(对excel文件无要求,取当前激活的一个。为避免误操作,最好只打开替换列表的这一个文件),将要被替换的文字写在A列,替换为的文字写在B列,如果需要分文件的话,将文件名的部分字符串写在C列(C列空的话认为是不区分文件,所有文件都被替换)。
如下图所示:

text1在所有文件中被替换为textA
text2在文件名包含ing2的文件中被替换为textB
text2在文件名包换ing1的文件中被替换为textC
当前的文件名是drawing1,因此text2被替换为textC

本帖子中包含更多资源

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

x
回复 支持 0 反对 1

使用道具 举报

发表于 2017-8-16 08:43:36 | 显示全部楼层

  1. (DEFUN C:TT(/ E ET LST O RANGE SL SS1 STR STRNEW STROLD)
  2.   (setq et(vlax-get-or-create-object"excel.application"))
  3.   (setq range(BF-excel-getusedrange et (BF-excel-getActiveSheet et)))
  4.   (setq lst(BF-excel-getrangevalue et (BF-excel-getrangeindex range)));内容
  5.   (setq ss1(ssget'((0 . "*text"))))
  6.   (setq sl(sslength ss1))
  7.   (repeat sl
  8.   (setq e(ssname ss1(setq sl(1- sl))))
  9.   (setq o(vlax-ename->vla-object e))
  10.   (setq strold(vlax-get o'textstring))
  11.   (if (setq str(car(vl-remove-if-not '(lambda(x)(WCMATCH strold (strcat"*"(car x)"*")))lst)));有这个文字
  12.     (progn
  13.     (setq strnew(vl-string-subst (cadr str)(car str)strold));新内容
  14.     (vlax-put o'textstring strnew)
  15.     )
  16.     )
  17.   )(prompt"***大懒猪荣誉出品***")
  18. (princ)
  19.   )

无法上传附近百度云链接:http://pan.baidu.com/s/1c1X67mC 密码:rac5


本帖子中包含更多资源

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

x
发表于 2017-8-1 15:58:12 | 显示全部楼层
本帖最后由 crossrainbows 于 2017-8-1 16:00 编辑
mikewolf2k 发表于 2015-12-25 12:17
再次更新,增加了文件名,可以同一字符串在不同的文件名中被替换为不同的字符串。
使用方法:
加载dvb,A ...

你好。我下载了你的ReplaceMultiText.dvb文件。但是我用cad2014打开alt+F11。提供我acadproject密码。请问密码是什么?我从官网上下载的vba 2014.显示是英文版。第一次没有安装好,第二次就怎么也安装不了了,安装路径是灰度的。我想借用你的程序替换不同的数字。路由图上的数字,特别多。

本帖子中包含更多资源

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

x
发表于 2006-3-13 11:28:00 | 显示全部楼层
源码都不共享,有个屁用
发表于 2006-4-7 20:28:00 | 显示全部楼层

很好的,你可以把源码发给我一份吗,我们可以交换程序,共同学习.

czlj2008@163.com

发表于 2006-6-11 16:25:00 | 显示全部楼层

为何不写成命令方便大家呢~

发表于 2006-7-24 23:21:00 | 显示全部楼层
我也在做地质图的时候,为了解决重复的输入上下标的时候,用vb.net也编写了个程序,可以把选中的文本提取到excel,在另外一列输入改变后的文本,然后一次替换掉,需要的话跟我联系。QQ12230359比这两个好用
发表于 2006-12-14 10:25:00 | 显示全部楼层

为什么不共享源码呀

好东西就要大家分享嘛

发表于 2008-8-12 11:38:00 | 显示全部楼层
谢谢了~ 试一下!
发表于 2011-5-28 22:37:40 | 显示全部楼层
谢谢。下来看看
发表于 2012-2-14 15:37:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-5-3 08:59:47 | 显示全部楼层
学习~~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-25 13:07 , Processed in 0.205253 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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