找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: lengliqun

[编程申请]:能将字符AAAA替换成BBB

[复制链接]
发表于 2004-6-20 06:35:14 | 显示全部楼层
最初由 lzh741206 发布
[B]两个程序一个毛病,字符中含有“AAAA”不能替换(如“FAAAA”)....B]

请看清1楼主的原问, 是 '将字符AAAA换成BBBB  ' 而不是 '将含有AAAA的字符换成BBBB', 单个程序不是万能的, 是有其针对性的...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-20 10:13:04 | 显示全部楼层
不错,Find命令可以完成功能,是我多事了,不过很佩服XD的某些长老们
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-20 16:08:01 | 显示全部楼层
用CHT不是很方便吗?把旧的字符贴上去,再写新的字符,而且还可对文字的宽、高编辑。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-23 12:37:19 | 显示全部楼层
谢谢,自由的鱼、lsjjm、lzh741206三大侠的程序都能满足我提出的要求,只是lsjjm的程序更能
满足我的R14下使用的要求,请问能将lsjjm的LSP程序中加入默认为选择全部字符的语句吗?即输入
命令test,回车,选择对象<默认全部选择>,回车,替换完成。如能这样更好:test回车,替换完成。谢谢大家的讨论。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-24 02:18:27 | 显示全部楼层
如果要写程序,我还是赞同用lzh741206  的思路来写
find的确有个缺点,就是要指定要替换的字符串
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-6-24 15:55:00 | 显示全部楼层
Sub TlsReplace()
On Error GoTo ErrHandle
Dim ent As AcadEntity
Dim ft(1) As Integer, fd(1)
Dim ss As AcadSelectionSet
Set ss = ThisDrawing.SelectionSets.Add("*TlsReplace*")
ft(0) = 0: fd(0) = "Text,MText"
ft(1) = 1: fd(1) = "*AAAA*"
ss.Select acSelectionSetAll, , , ft, fd
For Each ent In ss
ent.TextString = Replace(ent.TextString, "AAAA", "BBB")
Next
MsgBox "替换完成"
ErrHandle:
ss.Delete
End Sub


若同时我还需将3333替换成555上面这个程序如何修改呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-24 15:59:15 | 显示全部楼层
[Code]
Sub SetReplace()
'设置替换字符格式
    SaveSetting "TlsCad", "Replace", "0", ThisDrawing.Utility.GetString(0, "请输入被替换字符:")
    SaveSetting "TlsCad", "Replace", "1", ThisDrawing.Utility.GetString(0, "请输入替换字符:")
End Sub
Sub TlsReplace()
'替换
  On Error GoTo ErrHandle
    Dim ent As AcadEntity
    Dim ft(1) As Integer, fd(1)
    Dim ss As AcadSelectionSet
    Set ss = ThisDrawing.SelectionSets.Add("*TlsReplace*")
    Dim str1 As String, str2 As String
    str1 = GetSetting("TlsCad", "Replace", "0", "AAAA")
    str2 = GetSetting("TlsCad", "Replace", "1", "BBB")
    ft(0) = 0: fd(0) = "Text,MText"
    ft(1) = 1: fd(1) = "*" & str1 & "*"
    ss.Select acSelectionSetAll, , , ft, fd
    For Each ent In ss
    ent.TextString = Replace(ent.TextString, str1, str2)
    Next
    Debug.Print "替换完成"
ErrHandle:
    ThisDrawing.SelectionSets("*TlsReplace*").Delete
End Sub
[/Code]
下列Lisp代码Copy到Acad200?Doc.lsp文件中
[Code]
(defun c:SetRe()
  (SetVar "cmdecho" 0)
  (command "-vbarun" "SetReplace")
  (SetVar "cmdecho" 1)
  (print)
)
(defun c:TlsRe()
  (SetVar "cmdecho" 0)
  (command "-vbarun" "TlsReplace")
  (SetVar "cmdecho" 1)
  (print)
)
[/Code]
运行TlsRe命令替换,默认:"AAAA"替换为"BBB"
运行SetRe命令设置被替换字符和替换字符
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-23 20:11:20 | 显示全部楼层
后面的两位大虾贴的程序很有参考价值
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 02:50 , Processed in 0.172662 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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