Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Beginner
Sep 29, 1999

Perform Faster String Manipulations

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 String
Dim i As Integer, m_c As String
m_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 If
Next i
Use this code instead:
 
Dim m_newtext, m_oldtext As String
Dim i As Integer, m_c As String
Dim j As Integer
m_newtext = m_oldtext
j = 1
For 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 If
Next I
If 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.
Sorinel Ticrea
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date