您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-01 原文发表:2007-08-31 人气:5 来源:未知

方法一:
Public Function FastReplace(SSrch$, SFind$, SRepl$) As String

Dim Src() As Byte, Dst() As Byte, R() As Byte, F() As Byte
Dim LenF&, LenR&, LenDst&, i&, j&, OutPos&
逆风者

Const ChunkSize& = 4096

If SSrch = "" Or SFind = "" Then Exit Function

Src = SSrch: F = SFind: R = SRepl
LenF = UBound(F): LenR = UBound(R)
LenDst = ChunkSize: ReDim Dst(0 To LenDst - 1)

For i = 0 To UBound(Src) Step 2

For j = 0 To LenF Step 2
If Src(i j) <> F(j) Then Exit For
Next j

If j > LenF Then 'Found

For j = 0 To LenR Step 2
If OutPos >= LenDst Then
LenDst = LenDst ChunkSize
ReDim Preserve Dst(0 To LenDst)
End If
Dst(OutPos) = R(j): OutPos = OutPos 2
Next j

i = i LenF - 1

Else

If OutPos >= LenDst Then
LenDst = LenDst ChunkSize
ReDim Preserve Dst(0 To LenDst)
End If

Dst(OutPos) = Src(i): OutPos = OutPos 2

End If
Next i

ReDim Preserve Dst(0 To OutPos - 2): SSrch = Dst

FastReplace = SSrch$

End Function

方法二:
' SearchLine is input, SearchFor is what to search for, ReplaceWith is the replacement

Function sReplace(SearchLine As String, SearchFor As String, ReplaceWith As String)
Dim vSearchLine As String, found As Integer

found = InStr(SearchLine, SearchFor): vSearchLine = SearchLine
If found <> 0 Then
vSearchLine = ""
If found > 1 Then vSearchLine = Left(SearchLine, found - 1)
vSearchLine = vSearchLine ReplaceWith
If found Len(SearchFor) - 1 < Len(SearchLine) Then _
vSearchLine = vSearchLine Right$(SearchLine, Len(SearchLine) - found - Len(SearchFor) 1)
End If
sReplace = vSearchLine

End Function

相关文章

用VB编写DirectX7.0游戏
VB教程第一章:我的第一个 VB 程序——“跟
在Access数据库中实现密码管理的另一种方式
VB COM基础讲座之测试ActiveX EXEs
浅谈Excel 的VB编程
走进VB6啃一块骨头
捕捉 MouseExit 事件
用VB函数轻松访问系统注册表
VB访问数据库的方案比较
VB6中动态设置报表结果
Web动画图像分解在VB动画设计中的应用
用MCI指令进行多媒体编程
菜鸟入门:VB编程规约
Visual Basic 安装程序的制作
Visual Basic串口通信程序设计
让VB使用彩色及动画光标的方法
VB操作.ini后缀文件的方法
VB 神童教程第二章第十四节——文件操作控件
VB编程的好帮手--资源文件
用Visual Basic开发数据库浏览器

相关评论


本文章所属分类:首页 VB

  热门关键字: