devxlogo

Replace – String replacement under VB4 and VB5

Replace – String replacement under VB4 and VB5

' A clone of the VB6's Replace function for use under VB5' Note: many routines in this collection uses the Replace functionFunction Replace(Source As String, Find As String, ReplaceStr As String, _    Optional ByVal Start As Long = 1, Optional Count As Long = -1, _    Optional Compare As VbCompareMethod = vbBinaryCompare) As String    Dim findLen As Long    Dim replaceLen As Long    Dim index As Long    Dim counter As Long        findLen = Len(Find)    replaceLen = Len(ReplaceStr)    ' this prevents an endless loop    If findLen = 0 Then Err.Raise 5        If Start ' let's start by assigning the source to the result    Replace = Source        ' if Find and ReplaceStr strings have same length, it is possible to    ' use an optimized algorithm, based on the Mid$ command    Do        index = InStr(index, Replace, Find, Compare)        If index = 0 Then Exit Do        If findLen = replaceLen Then            ' if the find and replace strings have same length            ' we can use the faster Mid$ command            Mid$(Replace, index, findLen) = ReplaceStr        Else            ' else we must use concatenation            Replace = Left$(Replace, index - 1) & ReplaceStr & Mid$(Replace, _                index + findLen)        End If        ' skip over the string just added        index = index + replaceLen        ' increment the replacement counter        counter = counter + 1        ' Note that the Loop Until test will always fail if Count = -1    Loop Until counter = Count        ' The next operation serves to keep complete compatibility with    ' VB6's Replace function. You can delete it if you prefer.    If Start > 1 Then Replace = Mid$(Replace, Start)End Function

devx-admin

Share the Post: