不用组件来实现StrCat函数的功能
发布时间:2006-10-14 2:43:47   收集提供:gaoqian
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

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50