HOLA!!!
Sinceramente no se si sera tan rapida como la de Psyke1 pero me agrado y arme una, alguien haga un test :O
'cConcatenar7913.cls
Private Memoria As String
Private Capacidad As Long
Private TAM As Long
Private Sub Class_Initialize()
Capacidad = 65536
Memoria = Space$(65536)
TAM = 0
End Sub
Public Sub Agregar(ByRef STR As String)
Dim actTAM As Long
actTAM = LenB(STR) / 2
Do While actTAM > Capacidad - TAM
Memoria = Memoria & Space$(Capacidad)
Capacidad = Capacidad * 2
Loop
MidB$(Memoria, TAM + TAM + 2) = STR
TAM = TAM + actTAM
End Sub
Public Property Get CerrarSTR() As String
CerrarSTR = LeftB$(Memoria, TAM + TAM)
Call Class_Initialize
Debug.Print "Se ha borrado el string viejo y creado uno en blanco"
End Property
Public Property Get TamañoACT() As Long
TamanoACT = TAM
End Property
GRACIAS POR LEER!!!
Jajajajaja
¡Así me gusta! ¡Buen trabajo!
Yo estuve peleando con todo este tema hace poco, llegué a hacer mi clase más rápida, pero sebas123neo encontró una que es humanamente imposible de superar.
La idea que usa el hombre este es muy interesante, combinando mi manera de hacerlo con la que haces tú.
Hace un array de strings y va guardando el string en "páginas", muy interesante.
Aquí el código comparando con diferentes métodos, la diferencia es más que notable.
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=37141&lngWId=1
PD: Como no haga Karcrack algo en ASMinline no se me ocurre una forma de hacerlo mejor... ;D
DoEvents! :P
.
El buffer de paginas es estatico?... Se me ocurrio algo...
Dulces Lunas!¡.
HOLA!!!
Mmm no se si te referis al buffer que uso yo, que por cierto es la variable memoria.
El buffer mio se aumenta la primera vez de 0 a 64kb y luego va multiplicandose por 2 cada vez que se supera, lo cual si es una cadena larga mejora el rendimiento ya que se cambia el buffer menos veces.
GRACIAS POR LEER!!!
.
El comentario era para Psyke1 pero ya revise el codigo de su enlace xP.
Dulces Lunas!¡.
@Black
¿Se te ocurre algo mejor?
PD: Acabar contigo un proyecto es imposible. :P
DoEvents! :P
.
No ya no se me ocurrieron usar listas enlazadas para evitar usar el array pero no tiene caso...
P.D.: Me quede esperando una solucion por tu parte :-\ de lo contrario lo terminaria yo solo :silbar: digo ya tengo la mitad del troyecto terminado, inclusive toque la parte del proyecto que te correspondia...
Dulces Lunas!¡.