AW: und wo kommt in deinem
12.12.2009 16:56:18
Nepumuk
Hallo,
na dann mal ein Beispiel für die CopyMemory-Funktion. Es wird ein String gebildet, in dem ein Text 100mal hintereinander steht. Das ganze kannst du natürlich mit reinen VB-Mitteln auch machen, es geht aber mal um das Prinzip wie die Funktion arbeitet und wie StrPtr dabei mitspielt:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
ByRef pDst As Any, _
ByRef pSrc As Any, _
ByVal ByteLen As Long)
Public Sub Beispiel()
Const TEST_TEXT = "Hallo Daniel "
Dim strString As String
Dim lngCounter As Long, lngPosition As Long
strString = Space$(100 * Len(TEST_TEXT))
For lngCounter = 1 To 100
Call CopyMemory(ByVal StrPtr(strString) + lngPosition, _
ByVal StrPtr(TEST_TEXT), LenB(TEST_TEXT))
lngPosition = lngPosition + LenB(TEST_TEXT)
Next
Debug.Print strString
End Sub
Der Vorteil der Funktion, sie ist "sauschnell" :-)
Gruß
Nepumuk