elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [RETO] Recortar cadena.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [RETO] Recortar cadena.  (Leído 7,700 veces)
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [RETO] Recortar cadena.
« Respuesta #10 en: 23 Octubre 2011, 15:55 pm »

Vale todo el más rápido gana.
>:D

 >:D

Código
  1. Option Explicit
  2. Private Declare Sub RtlMoveMemory Lib "kernel32" (ByVal pDst As Long, ByVal pSrc As Long, ByVal ByteLen As Long)
  3. Private Declare Function SysAllocStringByteLen Lib "oleaut32.dll" (ByVal oleStr As Long, ByVal BLen As Long) As Long
  4.  
  5. Public Static Function RemoveStr_Psyke1(ByVal sText As String, ByVal lPosIni As Long, ByVal lLen As Long) As String
  6. Dim lLenB                                   As Long
  7. Dim lpString                                As Long
  8.  
  9.    lLenB = LenB(sText)
  10.    If lLenB Then
  11.        If (lPosIni Or lLen) And &H80000000 Then Exit Function
  12.  
  13.        lLen = (lLen + lLen)
  14.        lPosIni = (lPosIni + lPosIni)
  15.  
  16.        If (lPosIni + lLen) = lLenB Then lLen = lLenB
  17.  
  18.        If (lLen = lLenB) And (lPosIni = 0&) Then
  19.            RemoveStr_Psyke1 = sText
  20.            Exit Function
  21.        End If
  22.  
  23.        lpString = StrPtr(sText)
  24.  
  25.        RtlMoveMemory (lpString + lPosIni), (lpString + lPosIni + lLen), (lLenB - lPosIni + lLen)
  26.        RtlMoveMemory VarPtr(RemoveStr_Psyke1), VarPtr(SysAllocStringByteLen(lpString, lLenB - lLen)), 4&
  27.    End If
  28. End Function
  29.  
  30. Private Sub Form_Load()
  31.    MsgBox RemoveStr_Psyke1("hola amigo 123456789", 4, 6)
  32. End Sub

DoEvents! :P


« Última modificación: 23 Octubre 2011, 20:43 pm por Psyke1 » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Recortar cadena.
« Respuesta #11 en: 23 Octubre 2011, 21:35 pm »

@Psyke1

Tu funcion Crashea!¡.

Código
  1.  
  2.    Debug.Print RemoveStr_Psyke1("BlackZeroX", -1, 4), Len(RemoveStr_Psyke1("BlackZeroX", -1, 4))
  3.    Debug.Print RemoveStr_Psyke1("BlackZeroX", 9, 4), Len(RemoveStr_Psyke1("BlackZeroX", 9, 4))
  4.    Debug.Print RemoveStr_Psyke1("BlackZeroX", 0, -4), Len(RemoveStr_Psyke1("BlackZeroX", 0, -4))
  5.    Debug.Print RemoveStr_Psyke1("BlackZeroX", 1, 4), Len(RemoveStr_Psyke1("BlackZeroX", 1, 4))
  6.    Debug.Print RemoveStr_Psyke1("BlackZeroX", 0, 4), Len(RemoveStr_Psyke1("BlackZeroX", 0, 4))
  7.    Debug.Print RemoveStr_Psyke1("BlackZeroX", 0, 400), Len(RemoveStr_Psyke1("BlackZeroX", 0, 400))
  8.  
  9.  

Dulces Lunas!¡.


« Última modificación: 23 Octubre 2011, 21:40 pm por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [RETO] Recortar cadena.
« Respuesta #12 en: 23 Octubre 2011, 21:50 pm »

A mí no me crashea con más de tres llamadas... :rolleyes:
Prueba a quitar el Static por si acaso...

DoEvents! :P
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Recortar cadena.
« Respuesta #13 en: 23 Octubre 2011, 22:25 pm »

A mí no me crashea con más de tres llamadas... :rolleyes:

... Nada tiene que ver static (Que por cierto static para procesos carece de la funcionalidad habitual de llamada a funcion/proceso sin instanciar la clase y por ende esta demas en una funcion miembro static para variables muy diferente a static para miembros de clases y TODO esto deberia ser lo mismo para vb6, pero no es asi).

 * El unico uso que le preveo es una Generalizacion de la declaracion static para las declaraciones internas para EVITAR que se autodestruyan las variables.
 
Mira este codigo:

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5.    Debug.Print holaNoStatic, holaStatic
  6.    Debug.Print holaNoStatic, holaStatic
  7.    Debug.Print holaNoStatic, holaStatic
  8.    Debug.Print holaNoStatic, holaStatic
  9.    Debug.Print holaNoStatic, holaStatic
  10.    Debug.Print holaNoStatic, holaStatic
  11.    Debug.Print holaNoStatic, holaStatic
  12.    Debug.Print holaNoStatic, holaStatic
  13. End Sub
  14.  
  15. Public Function holaNoStatic() As String
  16. Dim a As Integer
  17.    Debug.Print "[a=" & VarPtr(a) & "]",
  18.    holaNoStatic = a
  19.    a = a + 1
  20. End Function
  21.  
  22. Public Static Function holaStatic() As String
  23. Dim a As Integer
  24.    Debug.Print "[a=" & VarPtr(a) & "]"
  25.    holaStatic = a
  26.    a = a + 1
  27. End Function
  28.  
  29.  

Revisa tu funcion con las 6 pruebas que deje en el anterior post.

Dulces Lunas!¡.
« Última modificación: 23 Octubre 2011, 22:31 pm por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Recortar cadena.
« Respuesta #14 en: 29 Octubre 2011, 02:22 am »

Cuando se Hacen los Test?

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Recortar imagenes
Diseño Gráfico
Superplay 9 4,320 Último mensaje 12 Agosto 2005, 10:59 am
por Superplay
recortar archivo .fla
Diseño Gráfico
Unnamed 2 4,951 Último mensaje 11 Septiembre 2008, 02:31 am
por Unnamed
recortar texto vb6
Programación Visual Basic
Psyke1 2 6,600 Último mensaje 28 Febrero 2010, 21:44 pm
por Psyke1
Recortar número « 1 2 »
Programación Visual Basic
Psyke1 11 5,037 Último mensaje 12 Agosto 2010, 08:51 am
por Psyke1
[RETO] Entero a cadena « 1 2 »
Programación Visual Basic
Karcrack 19 8,018 Último mensaje 1 Septiembre 2010, 21:55 pm
por Psyke1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines