really really slow by nature. This sample code uses classes to speed up the PRocess by ten times. Someone recentally came up with a DLL to do this but not all of us can install a DLL on our ISP's web servers so I wrote this easy to use VB Class for handling string concatenation.
code: Can't Copy and Paste this? Click here for a copy-and-paste friendly version of this code!
Terms of Agreement: By using this code, you agree to the following terms... 1) You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for langauges that allow it) freely and with no charge. 2) You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws. 3) You may link to this code from another website, but ONLY if it is not wrapped in a frame. 4) You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.
'************************************** ' Name: StrCat - Non DLL version ' Description:asp's ability to concatena ' ting many strings together is really rea ' lly slow by nature. This sample code use ' s classes to speed up the process by ten ' times. Someone recentally came up with a ' DLL to do this but not all of us can ins ' tall a DLL on our ISP's web servers so I ' wrote this easy to use VB Class for hand ' ling string concatenation. ' By: Kevin Pirkl ' ' Inputs:Public Property Length - To res ' ize the string length. To use it a secon ' d time on another string just set the .L ' ength property to another value or just ' dereference the object and recreate it. Public Method Add - too add data to the concatenated string. ' ' Assumes:Didnt do much testing except u ' sing it to add together a string of 100, ' 000 characters and it took about 7 secon ' ds which is not bad. If you need to add ' together more than that dont use this. I ' f your catting char strings like "<TR ' >" + whatever then it should be ok. ' 'This code is copyrighted and has ' limited warranties.Please see http://w ' ww.Planet-Source-Code.com/xq/ASP/txtCode ' Id.6342/lngWId.4/qx/vb/scripts/ShowCode. ' htm 'for details. '**************************************
Set X = New strCat' Create an instance of strCat X.Length = 100001' Change from the default String length of 100,000 str = "" For I = 1 To X.Length X.Add("A") '- takes 7 seconds on my computer 'str = str & "A"'- takes 1 minute 7 seconds on my computer Next msgBox(Len(X.Value)) X.Length = 101 For I = 1 To X.Length X.Add("B") Next msgBox(Len(X.Value)) Set X = Nothing ' Destroy the instance. msgBox("Done") Class strCat Private IntCntr Private strArray() Private intLength Public Property Get Length Length = intLength End Property Public Property Let Length( ByVal intLen) intLength = intLen IntCntr = 0 Redim strArray(1) strArray(0) = "" Redim strArray(intLength) End Property Public Property Get Value Value = Join( strArray,"") End Property Private Sub Class_Initialize() IntCntr = 0 Length = 100000 End Sub Public Function Add( strToAdd) strArray(IntCntr) = strToAdd IntCntr= IntCntr + 1 End Function End Class