Use Mid$ to Compose a Big String

The following code is a fast way to compose a big string by using Mid$ function instead of using the concatenating operator. The strings concatenated in a loop are often variable. So use S1 to represent general case.

     Const AllocFactor = 100000    Dim S As String    Dim S1 As String    Dim tmp As String    Dim i As Long    Dim StrLen As Long    Dim MaxLen As Long    Dim Curpos As Long    Dim CurLen As Long    MaxLen = AllocFactor    S = Space(MaxLen)    Curpos = 1    S1 = "abc"    For i = 0 To 99999        StrLen = Len(S1)        CurLen = Curpos + StrLen - 1        If CurLen > MaxLen Then            tmp = S            S = Space(MaxLen + AllocFactor)            Mid$(S, 1, MaxLen) = tmp            MaxLen = MaxLen + AllocFactor        End If        Mid$(S, Curpos, StrLen) = S1        Curpos = CurLen + 1    Next    If CurLen < MaxLen Then S = Left$(S, CurLen)

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: