Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: 79137913 en 19 Octubre 2011, 17:37 PM

Título: [SOURCE] cConcatenar7913
Publicado por: 79137913 en 19 Octubre 2011, 17:37 PM
HOLA!!!

Sinceramente no se si sera tan rapida como la de Psyke1 pero me agrado y arme una, alguien haga un test :O

Código (vb) [Seleccionar]
'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!!!
Título: Re: [SOURCE] cConcatenar7913
Publicado por: Psyke1 en 19 Octubre 2011, 22:32 PM
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
Título: Re: [SOURCE] cConcatenar7913
Publicado por: BlackZeroX en 20 Octubre 2011, 02:06 AM
.
El buffer de paginas es estatico?... Se me ocurrio algo...

Dulces Lunas!¡.
Título: Re: [SOURCE] cConcatenar7913
Publicado por: 79137913 en 20 Octubre 2011, 03:39 AM
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!!!
Título: Re: [SOURCE] cConcatenar7913
Publicado por: BlackZeroX en 20 Octubre 2011, 03:43 AM
.
El comentario era para Psyke1 pero ya revise el codigo de su enlace xP.

Dulces Lunas!¡.
Título: Re: [SOURCE] cConcatenar7913
Publicado por: Psyke1 en 20 Octubre 2011, 22:05 PM
@Black
¿Se te ocurre algo mejor?

PD: Acabar contigo un proyecto es imposible. :P

DoEvents! :P
Título: Re: [SOURCE] cConcatenar7913
Publicado por: BlackZeroX en 20 Octubre 2011, 22:34 PM
.
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!¡.