|
|
|
|
|
Dicas
|
|
Visual Basic (Datas/Números/Strings)
|
|
|
Título da Dica: Como trocar Strings Rapidamente
|
|
|
|
Postada em 9/9/2003 por Ð@®l@n
Essa é uma maneira bem legal de trocar 2 strings:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _ ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Public Sub SwapString( _ ByRef rstrS1 As String, ByRef rstrS2 As String)
Dim lngSave As Long ' Esse código troca os descritores dos strings, não os dados. ' StrPtr() retorna o endereço do primeiro caracter em um string. ' VarPtr() retorna o endereço do descritor do string, que é um ' inteiro de 4 bytes e contém o endereço do primeiro caracter ' em um string. StrPtr() e VarPtr() são funções não documentadas ' do VB. lngSave = StrPtr(rstrS1) Call CopyMemory(ByVal VarPtr(rstrS1), ByVal VarPtr(rstrS2), 4&) Call CopyMemory(ByVal VarPtr(rstrS2), lngSave, 4&) End Sub
Até para strings pequenos, esse método é mais rápido do que o método tradicional:
Public Sub SwapString( _ ByRef rstrS1 As String, ByRef rstrS2 As String)
Dim strSave As String strSave = rstrS1 rstrS1 = rstrS2 rstrS2 = strSave End Sub
Mas quanto maiores os strings, a diferença de performance fica mais e mais dramática.
Autor: Thomas Weiss (Illinois, EUA)
|
|
|
|
|