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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [Reto] IsHour
« Respuesta #10 en: 15 Septiembre 2011, 22:37 pm »

¿Ahora mejor? :xD :-*

DoEvents! :P


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [Reto] IsHour
« Respuesta #11 en: 15 Septiembre 2011, 23:40 pm »

Usando el mismo estilo de prueba que use en IsDate :rolleyes:

Código:
 === Reto IsHour ====
09-15-2011 18:41:27

Testeo de calidad
==============================
00:00:00 Psyke1 FAILS

Testeo de falsos
==============================
5:59:59 Psyke1 FAILS


Testeo de velocidades
==============================
300000 vueltas

413,168 msec BlackZeroX
1.198,057 msec Psyke1
572,217 msec Psyke14
215,601 msec raul338


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Reto] IsHour
« Respuesta #12 en: 15 Septiembre 2011, 23:47 pm »

¿Ahora mejor? :xD :-*

Sigue igual... ya que para sumar un numero a un valor guardado en una string se recurre al BadTypeConvert/EvilTypeConvert, lo digo solo por que a simple vista un "Novato/Intermedio" puede confundirse un poco y por eso no me gusta, no se digiere rapido, aun asi genial funcion!¡.

P.D.:
    Sigues en CrazedCountryRebels?, estuve en españa hace 1 mes (vacaciones) y busque ese restaurante o lo que sea no lo haye jajaja... si era españa vdd?

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [Reto] IsHour
« Respuesta #13 en: 16 Septiembre 2011, 00:43 am »

@BlackZero
Ahh, ok, te lo había copiado de un código tuyo de no sé donde... :silbar:
Viniste a España y no me avisas. :-( :xD
Sí, sigo en el grupo, sé que no es muy metal para ti, pero bueno... :laugh: ;)

@raul
Gracias, corregida... :)
Que listo, justo pruebas con mis funciones lentas... :rolleyes:
Si probamos con mi función más rápida IsHour_Psyke12 las cosas cambian. :silbar:

Código:
Option Explicit
 
Private Declare Sub RtlMoveMemory Lib "kernel32" (ByVal pDst As Long, ByVal pSrc As Long, ByVal ByteLen As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
Dim t As New CTiming, c As New Class1, i&, r&, a$(), b As Boolean

    Me.AutoRedraw = True
    a() = Split("34:23:45 5:59:59 10:45:67 raulfeo 00:00:00 14:57:79 111:23:4", " ")
    
    t.Reset
    For i = 0 To 200000
        For r = 0 To 6
            b = IsHour_r338(a(r))
        Next
    Next
    Me.Print t.sElapsed, "raul338"
    Sleep 1000
    
    t.Reset
    For i = 0 To 200000
        For r = 0 To 6
            b = isHour_BlackZX(a(r))
        Next
    Next
    Me.Print t.sElapsed, "Black"
    Sleep 1000
    
    t.Reset
    For i = 0 To 200000
        For r = 0 To 6
            b = c.IsHour_Psyke12(a(r))
        Next
    Next
    Me.Print t.sElapsed, , "Psyke13"

    Set c = Nothing
    Set t = Nothing
End Sub

Resultado:


DoEvents! :P

« Última modificación: 16 Septiembre 2011, 14:15 pm por Psyke1 » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Reto] IsHour
« Respuesta #14 en: 16 Septiembre 2011, 01:28 am »

@ A mi criterio ni la de Raul338 ni la mia son legiles (me tarde un poco en entender la de Raul338, mas que nada como comprobaba los rangos, ya que esta dispersa esa region)... y la mia esta un poco ofuscada... mas aun sin comentarios, almenos que seas yo  :xD.

Para mi la funcion mas rapida y legible es la de IsHour_Psyke12, no tengo que comprobarla para saber eso.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: [Reto] IsHour
« Respuesta #15 en: 16 Septiembre 2011, 03:30 am »

Rustic Mode ON!
[Rustic]

Código
  1. Public Function eCode(ByRef Time As String) As Boolean
  2.    On Error GoTo Fallo
  3.    If Len(Time) <> 8 Then Exit Function
  4.    Dim sTime() As String
  5.    sTime = Split(Time, ":")
  6.    If CLng(sTime(0)) >= 0 And CLng(sTime(0)) <= 23 And _
  7.       CLng(sTime(1)) >= 0 And CLng(sTime(1)) <= 59 And _
  8.       CLng(sTime(2)) >= 0 And CLng(sTime(2)) <= 59 Then eCode = True
  9. Fallo:
  10. End Function

[/Rustic]
En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: [Reto] IsHour
« Respuesta #16 en: 18 Septiembre 2011, 00:02 am »

Bueno aqui el mio...  ;D

Código
  1. Public Function IsHour(ByRef Expresion As String) As Boolean
  2. Dim C()         As Byte
  3. Dim L           As Integer
  4. Dim P           As Integer
  5. Dim F           As Boolean
  6.  
  7. L = Len(Expresion)
  8. If (L And &H8) Then
  9.    L = (L - &H8)
  10.    If (L Or &H0) = &H0 Then
  11.        C = StrConv(Expresion, vbFromUnicode)
  12.        P = &H2
  13. Sig0:
  14.        L = C(P)
  15.        If (L And &H20) Then
  16.            L = (L - &H20)
  17.            If (L And &H10) Then
  18.                L = (L - &H10)
  19.                If (L And &H8) Then
  20.                    L = (L - &H8)
  21.                    If (L And &H2) Then
  22.                        L = (L - &H2)
  23.                        If (L Or &H0) = &H0 Then
  24.                            If (P And &H4) Then
  25.                                GoTo Sig
  26.                            Else
  27.                                P = &H5
  28.                                GoTo Sig0
  29.                            End If
  30.                        End If
  31.                    End If
  32.                End If
  33.            End If
  34.        End If
  35.        Exit Function
  36. Sig:
  37.        L = C(0)
  38.        L = (L - &H33)
  39.        If (L And &H40) Then
  40.            L = (C(0) - &H30)
  41.            If (L And &H40) Then
  42.                Exit Function
  43.            Else
  44.                If (L And &H2) Then F = True
  45.                GoTo Sig2
  46.            End If
  47.        End If
  48.        Exit Function
  49. Sig2:
  50.        L = C(1)
  51.        L = (L - &H3A)
  52.        If (L And &H40) Then
  53.            L = (-&HB - L)
  54.            If (L And &H10) Then
  55.                L = ((Not L) - &H4)
  56.                If (L And &H4) Then
  57.                    GoTo Sig3
  58.                Else
  59.                    If Not F Then GoTo Sig3
  60.                End If
  61.            End If
  62.        End If
  63.        Exit Function
  64. Sig3:
  65.        P = &H3
  66. Sig4:
  67.        L = C(P)
  68.        L = (L - &H36)
  69.        If (L And &H40) Then
  70.            L = (-L - &H7)
  71.            If (L And &H8) Then
  72.                P = (P + &H3)
  73.                If (P And &H8) Then
  74.                    P = &H4
  75.                    GoTo Sig5
  76.                Else
  77.                    GoTo Sig4
  78.                End If
  79.            End If
  80.        End If
  81.        Exit Function
  82. Sig5:
  83.        L = C(P)
  84.        L = (L - &H3A)
  85.        If (L And &H40) Then
  86.            L = (-L - &HB)
  87.            If (L And &H10) Then
  88.                P = (P + &H3)
  89.                If (P And &H8) Then IsHour = True Else GoTo Sig5
  90.            End If
  91.        End If
  92.    End If
  93. End If
  94. End Function
  95.  

Alguien puede subir el proyecto completo del reto?, salu2 !
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Reto] IsHour
« Respuesta #17 en: 18 Septiembre 2011, 02:57 am »

@BlackZero
Ahh, ok, te lo había copiado de un código tuyo de no sé donde... :silbar:

lo se pero yo lo hacia de la manera (Solo en/para numeros).

TipoNumerico1 = (TipoNumerico1.2 + TipoNumerico2)

Donde: TipoNumerico1.2 es del mismo tipo que TipoNumerico1 pero con valor 0... y el tipo resultante sera del tipo TipoNumerico1.2, mas no del TipoNumerico2...

ej.:

Código
  1.  
  2. dim lVal as long
  3. dim bVal as byte
  4.  
  5. lval = (&H0 + bVal)
  6.  
  7.  

y tu lo haces de una manera un poco mas ofuscada... ya que como sabras si pones

Código
  1.  
  2. dim lVal as long
  3. Const VAL as string = "10"
  4.  
  5. VAL
  6. lval = (&H0 + VAL) ' // mas no (VAL + &H0)
  7.  
  8.  

Realizara su trabajo, pero le das mas trabajo independiente a el lenguaje y sabra solo el que resultados salgan... ya que como sabras "10" se deberia transformar a un valor de tipo numerico (Lo que yo hago en mi codigo y que seguro Raul338 me copio..  :xD :xD na no te creas es un gran programador  ;) :))
« Última modificación: 18 Septiembre 2011, 03:01 am por BlackZeroX▓▓▒▒░░ » 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
Reto ;)
Ingeniería Inversa
NeoKiller 3 2,929 Último mensaje 15 Agosto 2004, 23:12 pm
por NeoKiller
Reto!!
Ingeniería Inversa
HaCkZaTaN 2 2,977 Último mensaje 10 Septiembre 2004, 09:30 am
por Ðevastador
Reto vB
Ingeniería Inversa
nhouse 2 3,536 Último mensaje 16 Marzo 2005, 09:41 am
por 4rS3NI(
reto en VB6
Ingeniería Inversa
ellolo 1 2,653 Último mensaje 15 Abril 2005, 10:03 am
por UnpaCker!
Un reto !!! « 1 2 3 »
Programación Visual Basic
VirucKingX 24 8,557 Último mensaje 8 Mayo 2006, 23:36 pm
por Kizar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines