- 积分
- 3266
- 明经币
- 个
- 注册时间
- 2002-7-5
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2003-10-17 20:19:00
|
显示全部楼层
不知道楼主是否感觉到字符串替换不方便。
我写好是程序,但明总指示:不要仅授人以鱼,要授人以渔。我感觉授人以渔不知从何说起,只好在程序中多加了些注释,希望不违明总初衷。ACAD实现部分的代码就不帖了。
'字符串替换函数,将源字符串ResStr中与Str1相同的子串替换为Str2后返回
'调用方法:Ent.TextString = ReplaceString(Ent.TextString, "ABC", "XYZ")
'为保证函数的通用性,这个函数不修改源字符串。
'在楼主要求的应用中,也可将替换功能声明为Sub过程。
'在程序中不需要使用临时字符串TempStr,直接使用源字符串ResStr。
'在调用时使用类似这样的语句: ReplaceString Ent.TextString,Str1,Str2
Function ReplaceString(ResStr As String, Str1 As String, Str2 As String) As String
Dim TempStr As String
Dim i As Integer
i = 1
TempStr = ResStr '复制源字符串,运算后返回
'InStr()函数返回从位置i开始搜索,源字符串中与Str1相同的子串首次出现的位置
'该函数默认情况进行二进制比较,要在比较时忽略大小写区别,可在参数表中加上数字0
'也就是这样:InStr(i,TempStr,Str1,0)
While InStr(i, TempStr, Str1) > 0
i = InStr(i, TempStr, Str1)
TempStr = Left(TempStr, i - 1) & Str2 & Mid(TempStr, i + Len(Str2))
Wend
ReplaceString = TempStr
End Function |
|