Shamil Salakhetdinov
shamil at users.mns.ru
Tue Nov 1 12:24:03 CST 2005
Gustav and Drew,
The code below with 10^5 chars string concatenation works within 1 second.
10^6 chars string concatenation works for ~10 secs on my PC.
So before diving into C++ maybe some easy tricks on VB6/VBA can be used if
they are good enough for a certain task?
Please take into account that sample code below is just for demostation
purposes - it wasn't made "rock solid" as it should be....
' TEST code
Private Sub Command1_Click()
Dim obj As New CStringConcatenator
Dim strTemp As String
Dim strTemp2 As String
Dim i As Long
Dim dtStart As Date
strTemp = String(100000, "A")
strTemp2 = ""
dtStart = Now
For i = 1 To Len(strTemp)
'strTemp2 = strTemp2 & LCase(Mid(strTemp, i, 1))
obj.Add LCase(Mid(strTemp, i, 1))
Next i
MsgBox Format(Now - dtStart, "HH:NN:SS")
strTemp2 = obj.Result
MsgBox strTemp2
End Sub
' === cut here ====
' Little tricky sample class to concat strings written by SS
Private Const mcstrClassName As String = "CStringConcatenator"
Private fileNumber As Integer
Private fileFullPath As String
Private Sub Class_Initialize()
fileNumber = FreeFile
fileFullPath = App.Path & "\~concat.tmp.txt"
If Len(Dir(fileFullPath, vbNormal)) > 0 Then Kill fileFullPath
Open fileFullPath For Binary Access Read Write As #fileNumber
End Sub
Private Sub Class_Terminate()
Close #fileNumber
End Sub
Public Sub Add(ByVal vstr As String)
Put #fileNumber, , vstr
End Sub
Public Property Get Result() As String
Dim lngFileLen As Long
Dim strResult As String
lngFileLen = LOF(fileNumber)
strResult = String(lngFileLen, Chr(0))
Seek #fileNumber, 1
Get #fileNumber, , strResult
Result = strResult
End Property
HTH,
Shamil
----- Original Message -----
From: "Gustav Brock" <Gustav at cactus.dk>
To: <accessd at databaseadvisors.com>
Sent: Tuesday, November 01, 2005 4:49 PM
Subject: Re: [AccessD] New Wheel Encryption Add-in
> Hi Drew
>
> Well, one thread to check out, is:
>
> Array faster in DLL?
>
> That could really spin up your wheel encryption ...
>
> /gustav
>
> >>> DWUTKA at marlow.com 01-11-2005 14:32 >>>
> Sorry, haven't paid a lot of attention to AccessD lately. Just been busy.
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com