Foro de elhacker.net

Programación => 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
  1. '---------------------------------------------------------------------------------------
  2. ' Procedure : SplitAlter
  3. ' DateTime  : 16/09/2008 22:58
  4. ' Author    : Cobein
  5. ' Mail      : cobein27@yahoo.com
  6. ' Purpose   : Complete Split Replacement
  7. '---------------------------------------------------------------------------------------
  8. Private Function SplitAlter(ByVal epresionje As String, Optional ByVal Delimiter As String, Optional ByVal Limit As Long = -1) As String()
  9.    Dim lLastPos    As Long
  10.    Dim lIncrement  As Long
  11.    Dim lExpLen     As Long
  12.    Dim lDelimLen   As Long
  13.    Dim lUbound     As Long
  14.    Dim svTemp()    As String
  15.  
  16.    lExpLen = Len(epresionje)
  17.  
  18.    If Delimiter = vbNullString Then Delimiter = " "
  19.    lDelimLen = Len(Delimiter)
  20.    If Limit = 0 Then GoTo QuitHere
  21.    If lExpLen = 0 Then GoTo QuitHere
  22.    If InStr(1, epresionje, Delimiter, vbBinaryCompare) = 0 Then GoTo QuitHere
  23.  
  24.    ReDim svTemp(0)
  25.    lLastPos = 1
  26.    lIncrement = 1
  27.  
  28.    Do
  29.        If lUbound + 1 = Limit Then
  30.            svTemp(lUbound) = Mid$(epresionje, lLastPos)
  31.            Exit Do
  32.        End If
  33.        lIncrement = InStr(lIncrement, epresionje, Delimiter, vbBinaryCompare)
  34.        If lIncrement = 0 Then
  35.            If Not lLastPos = lExpLen Then
  36.                svTemp(lUbound) = Mid$(epresionje, lLastPos)
  37.            End If
  38.            Exit Do
  39.        End If
  40.        svTemp(lUbound) = Mid$(epresionje, lLastPos, lIncrement - lLastPos)
  41.        lUbound = lUbound + 1
  42.        ReDim Preserve svTemp(lUbound)
  43.        lLastPos = lIncrement + lDelimLen
  44.        lIncrement = lLastPos
  45.    Loop
  46.  
  47.    ReDim Preserve svTemp(lUbound)
  48.    SplitAlter = svTemp
  49.  
  50.    Exit Function
  51.  
  52. QuitHere:
  53.    ReDim SplitAlter(-1 To -1)
  54. End Function
  55.  


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