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: cobein en 17 Septiembre 2008, 04:04 AM

Título: Split replacement
Publicado por: cobein en 17 Septiembre 2008, 04:04 AM
Estaba al pe.. asi que hice esto una funcion que imita a la funcion Split, al parecer el split es detectado por la heuristica de los AVs asi que esto podria ser una buena opcion supongo.

Bueno no se porque pero esto me esta modificando la variable Expre ssion (lo separe para que no lo modifique) por epresionje

Código (vb) [Seleccionar]

'---------------------------------------------------------------------------------------
' Procedure : SplitAlter
' DateTime  : 16/09/2008 22:58
' Author    : Cobein
' Mail      : cobein27@yahoo.com
' Purpose   : Complete Split Replacement
'---------------------------------------------------------------------------------------
Private Function SplitAlter(ByVal epresionje As String, Optional ByVal Delimiter As String, Optional ByVal Limit As Long = -1) As String()
    Dim lLastPos    As Long
    Dim lIncrement  As Long
    Dim lExpLen     As Long
    Dim lDelimLen   As Long
    Dim lUbound     As Long
    Dim svTemp()    As String
   
    lExpLen = Len(epresionje)
   
    If Delimiter = vbNullString Then Delimiter = " "
    lDelimLen = Len(Delimiter)
    If Limit = 0 Then GoTo QuitHere
    If lExpLen = 0 Then GoTo QuitHere
    If InStr(1, epresionje, Delimiter, vbBinaryCompare) = 0 Then GoTo QuitHere
   
    ReDim svTemp(0)
    lLastPos = 1
    lIncrement = 1
   
    Do
        If lUbound + 1 = Limit Then
            svTemp(lUbound) = Mid$(epresionje, lLastPos)
            Exit Do
        End If
        lIncrement = InStr(lIncrement, epresionje, Delimiter, vbBinaryCompare)
        If lIncrement = 0 Then
            If Not lLastPos = lExpLen Then
                svTemp(lUbound) = Mid$(epresionje, lLastPos)
            End If
            Exit Do
        End If
        svTemp(lUbound) = Mid$(epresionje, lLastPos, lIncrement - lLastPos)
        lUbound = lUbound + 1
        ReDim Preserve svTemp(lUbound)
        lLastPos = lIncrement + lDelimLen
        lIncrement = lLastPos
    Loop
   
    ReDim Preserve svTemp(lUbound)
    SplitAlter = svTemp
   
    Exit Function
   
QuitHere:
    ReDim SplitAlter(-1 To -1)
End Function

Título: Re: Split replacement
Publicado por: naderST en 17 Septiembre 2008, 05:07 AM
Esta muy bueno ;D
Título: Re: Split replacement
Publicado por: ssccaann43 © en 17 Septiembre 2008, 05:34 AM
Che apuesto que estabas aburrido!???? :P
Título: Re: Split replacement
Publicado por: Spider-Net en 17 Septiembre 2008, 12:44 PM
Buen aporte cobein, como siempre!!, gracias!

Saludos!
Título: Re: Split replacement
Publicado por: BlackZeroX en 18 Septiembre 2008, 01:15 AM
yo cuando aprendia apenas VB hice algo similar solo que mi codigo era muuuy largo xS obviamente apenas empesaba y no por maestros si no por mi propia cuenta y ejemplos descargados era mas o menos el doble o triple de tu codigo je xP haber i lo ayo y lo pongo je.

Aun asi esta bueno xP