USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  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)
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página