Are you dealing with strings you have to parse if you want to drop one special character or change it into another? Keep this trick in mind. Even though this code seems to work fine, there is one minor problem that can cause headaches. The time you spend in memory allocation (line 7) increases dramatically in relation to the length of the processed string:
Dim m_newtext, m_oldtext As StringDim i As Integer, m_c As Stringm_newtext = ""For i = 1 To Len(m_oldtext) m_c = Mid(m_oldtext, i, 1) If ParseTestFunction(m_c) Then m_newtext = m_newtext & m_c End IfNext i
Use this code instead:
Dim m_newtext, m_oldtext As StringDim i As Integer, m_c As StringDim j As Integerm_newtext = m_oldtextj = 1For i = 1 To Len(m_oldtext) m_c = Mid(m_oldtext, i, 1) If ParseTestFunction(m_c) Then Mid(m_newtext, j, 1) = m_c j = j + 1 End IfNext IIf j > 1 Then m_newtext = Left(m_newtext, j - 1)Else m_newtext = ""End If
You can use the same technique when you parse for substrings. The improvement is obvious for large strings. Implement this with a 30K string and see the difference. It looks like a lot more code, but inserting a character into an existing string is always much faster than appending it.