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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [RETO] + Funcion Extraer Numeros de Cadenas!
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] 3 4 5 6 Ir Abajo Respuesta Imprimir
Autor Tema: [RETO] + Funcion Extraer Numeros de Cadenas!  (Leído 29,322 veces)
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #10 en: 5 Enero 2012, 23:28 pm »

No debería devolver un número?
Deberías poner la declaración de la función, para que BlackZeroX no empiece a usar buffers declarados fuera de esta :P

¡TE MALDIGO¡.

@RHL - 该0在
Maldito Tramposo usas la misma String para retornar...


¡Aun asi dejo la actualizada! (Edite mi codigo).

Dulces Lunas!¡.


« Última modificación: 5 Enero 2012, 23:37 pm por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #11 en: 5 Enero 2012, 23:34 pm »

 :xD
no es trampa v_v
haber quien le gana a mi MOV :3


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #12 en: 6 Enero 2012, 00:56 am »

@RHL: No deberías declarar RtlMoveMemory() por el ordinal... es probable que no funcione en todas las versiones de W$.

Mi código:
Código
  1. Private Static Sub kGetNums(ByRef s As String)
  2.    Dim bv(0)   As Byte
  3.    Dim pbv     As Long
  4.    Dim rps     As Long
  5.    Dim i       As Long
  6.    Dim b       As Byte
  7.    Dim w       As Long
  8.  
  9.    If pbv = 0 Then pbv = VarPtr(bv(0))
  10.  
  11.    rps = StrPtr(s) - pbv
  12.    w = 0
  13.  
  14.    For i = 0 To LenB(s) Step 10
  15.        b = bv(rps + i + 0)
  16.        If b >= &H30 Then
  17.            If b <= &H39 Then
  18.                bv(rps + w) = b
  19.                w = w + 2
  20.            End If
  21.        End If
  22.        b = bv(rps + i + 2)
  23.        If b >= &H30 Then
  24.            If b <= &H39 Then
  25.                bv(rps + w) = b
  26.                w = w + 2
  27.            End If
  28.        End If
  29.        b = bv(rps + i + 4)
  30.        If b >= &H30 Then
  31.            If b <= &H39 Then
  32.                bv(rps + w) = b
  33.                w = w + 2
  34.            End If
  35.        End If
  36.        b = bv(rps + i + 6)
  37.        If b >= &H30 Then
  38.            If b <= &H39 Then
  39.                bv(rps + w) = b
  40.                w = w + 2
  41.            End If
  42.        End If
  43.        b = bv(rps + i + 8)
  44.        If b >= &H30 Then
  45.            If b <= &H39 Then
  46.                bv(rps + w) = b
  47.                w = w + 2
  48.            End If
  49.        End If
  50.    Next i
  51.  
  52.    bv(rps + w) = 0
  53. End Sub
  54.  
Código
  1. dim x as string
  2. x = "1e2e3a4b"
  3. call kGetNums(x)
  4. msgbox x
HAY QUE DESACTIVAR LA COMPROBACIÓN DE TAMAÑO DEL BUFFER!!! Y probar compilado (of course!)!!!
He arriesgado un poco con el unwinding del bucle... pero ya veremos los resultados :laugh: :laugh:

Sería conveniente también que para hacer las pruebas de velocidad además de hacerlo compilado hacerlo sin comprobación de buffers y comprobación de overflow!!

PD: He ganado a "tu" mov :P :P
« Última modificación: 6 Enero 2012, 01:02 am por Karcrack » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #13 en: 6 Enero 2012, 01:18 am »

Yo hiba a hacer el truquito de "Quitar la comprovacion en limites de las matrices"...  :¬¬ eso me pasa por irme a bañar  :¬¬.

Ahora te odio mas...

Temibles Lunas!¡.
En línea

The Dark Shadow is my passion.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #14 en: 6 Enero 2012, 01:21 am »

Eso ya es magia negra o blanca v_v
igual ya termino todo me temía lo peor v_v' osea un mov sin apis ni asm inline
ya hay ganador no creo que nadie supere la funcion la funcion de karcrack :P v_V

EDIT:
@Karcrack
Karcrack, te espero en el proximo reto que se valdra absolutamente de todo!

« Última modificación: 6 Enero 2012, 01:27 am por RHL - 该0在 » En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #15 en: 6 Enero 2012, 02:07 am »

HOLA!!!

Como me lo imaginaba Kcrack WON XD.


@KCrack:
Como hago para que una funcion :
Private Function A (b() as byte) as byte ()

Me soporte la entrada de srtings en b() as byte ...


@Raul, no me podes usar la misma variable para devolver y pedir  retLen XD, ... por eso siempre digo que hay que poner la declaracion de la funcion sino se da lugar a confuciones.

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #16 en: 6 Enero 2012, 02:24 am »

La funcion de Karcrack me crashea mmm aun asi prueba esta funcion... ("Quitar la comprovacion en limites de las matrices)... En TEORIA es mas rapida que la que puso Karcrack...

Código
  1.  
  2. Private Function getNumbers2(ByRef sIn As String, ByRef sOut As String) As Long
  3. Dim thisWord(0) As Integer  '   //  Un caracter = 2 bytes = integer
  4. Dim dwOffSetGet As Long     '   //  Offset Get caracter...
  5. Dim dwOffSetSet As Long     '   //  Offset Set caracter...
  6. Dim wWord       As Integer  '   //  Letra en asc...
  7. Dim dwRet       As Integer  '   //  Cantidad de digitos encontrados...
  8. Dim dwLenI      As Long     '   //  Longitud en bytes de sIn...
  9. Dim dwLenB      As Long     '   //  Longitud en bytes de sOut...
  10. Dim dwOffset    As Long     '   //  Offset del Buffer...
  11.  
  12.    dwOffSetGet = (StrPtr(sIn) - VarPtr(thisWord(0))) \ 2
  13.    dwLenB = LenB(sOut)
  14.  
  15.    If (dwLenB) Then
  16.        dwOffSetSet = (StrPtr(sOut) - VarPtr(thisWord(0))) \ 2
  17.    End If
  18.    dwLenI = LenB(sIn)
  19.  
  20.    If (dwLenI) Then
  21.        Do
  22.            If (dwLenI And &H80000000) Then Exit Do
  23.  
  24.            wWord = thisWord(dwOffSetGet)
  25.  
  26.            If (wWord >= &H30) Then
  27.                If (wWord <= &H39) Then
  28.                    dwRet = (dwRet + 1)
  29.                    If (dwLenB) Then
  30.                        thisWord(dwOffSetSet) = wWord
  31.                        dwOffSetSet = (dwOffSetSet + 1)
  32.                        dwLenB = (dwLenB - 2)
  33.                    End If
  34.                End If
  35.            End If
  36.  
  37.            dwOffSetGet = (dwOffSetGet + 1)
  38.            dwLenI = (dwLenI - 2)
  39.  
  40.        Loop While (wWord > 0)
  41.    End If
  42.  
  43.    thisWord(dwOffSetSet) = &H0&
  44.    getNumbers2 = dwRet
  45.  
  46. End Function
  47.  
  48.  
« Última modificación: 6 Enero 2012, 02:30 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #17 en: 6 Enero 2012, 02:25 am »

yo probe la funcion de Karcrack y no hay manera de que funcione, me tira subindice fuera del intervalo.

saludos.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #18 en: 6 Enero 2012, 02:27 am »

Cuando lo compiles "Quitar la comprovacion en limites de las matrices"... hay en Opciones despues de darle generar exe...

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas!
« Respuesta #19 en: 6 Enero 2012, 02:27 am »

@79137913
el retlen lo escribi porque yo queria, la longitud de los valores encontrados no venia al reto
osea era cuestion de uno, y en cuanto a devolver y recibir en la misma variable... esta bien modificare el codigo a tu gusto ;)

Funcion GetNums ( STR as string ) as string
« Última modificación: 6 Enero 2012, 02:39 am por RHL - 该0在 » En línea

Páginas: 1 [2] 3 4 5 6 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines