当前位置:编程学习 > VB >>

把符串中的一子串替换为另一子串

 

方法一:

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

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,