|
|
|
|
|
Dicas
|
|
Visual Basic (Datas/Números/Strings)
|
|
|
Título da Dica: Manipulação de Strings com VB 6
|
|
|
|
Postada em 3/9/2003 por Ð@®l@n
O VB 6 sofre com o problema na concatenação de strings : O excesso de realocações de memória causa uma grande lentidão no processo de concatenação de strings.
Veja um exemplo :
res = "" For i = 1 to 10000: res = res & Str(i): Next
Esse trecho de código sofre com a necessidade de realocar a variável RES a cada concatenação realizada.
Para solucionar este problema podemos pré-alocar o espaço da string que necessitamos e alterar a string contida neste espaço pré-alocado. Veja um exemplo :
Dim res As String Dim i As Long Dim index As Long
' Faz a alocação de 90000 caracteres res = Space(90000) ' Define um indice para controlar o preenchimento da string index = 1
' A concatenação será feita com todos os valores de I, apenas como exemplo For i = 1 to 10000 substr = Str(i) length = Len(substr) ' Aqui o truque : A atribuição a função MID$ gera uma alteração na string ' original Mid$(res, index, length) = substr ' O indice dentro da string tem que avançar para a próxima posição livre 'da string index = index + length Next ' Apaga os caracteres que estiverem sobrando (espaços, no ex. um trim tb ' resolveria) res = Left$(res, index - 1)
|
|
|
|
|