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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [23] 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ... 74
221  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero es odioso en: 16 Agosto 2010, 06:46 am
yo pongo esta pero me siento un ladron  >:(

Código
  1. Private Function IsOdiousNumber(lNum As Long) As Boolean
  2.  
  3.    Dim l As Long
  4.  
  5.    l = ((lNum And &H80000000) \ &H80000000)
  6.    l = l + ((lNum And &H40000000) \ &H40000000)
  7.    l = l + ((lNum And &H20000000) \ &H20000000)
  8.    l = l + ((lNum And &H10000000) \ &H10000000)
  9.    l = l + ((lNum And &H8000000) \ &H8000000)
  10.    l = l + ((lNum And &H4000000) \ &H4000000)
  11.    l = l + ((lNum And &H2000000) \ &H2000000)
  12.    l = l + ((lNum And &H1000000) \ &H1000000)
  13.    l = l + ((lNum And &H800000) \ &H800000)
  14.    l = l + ((lNum And &H400000) \ &H400000)
  15.    l = l + ((lNum And &H200000) \ &H200000)
  16.    l = l + ((lNum And &H100000) \ &H100000)
  17.    l = l + ((lNum And &H80000) \ &H80000)
  18.    l = l + ((lNum And &H40000) \ &H40000)
  19.    l = l + ((lNum And &H20000) \ &H20000)
  20.    l = l + ((lNum And &H10000) \ &H10000)
  21.    l = l + ((lNum And &H8000&) \ &H8000&)
  22.    l = l + ((lNum And &H4000) \ &H4000)
  23.    l = l + ((lNum And &H2000) \ &H2000)
  24.    l = l + ((lNum And &H1000) \ &H1000)
  25.    l = l + ((lNum And &H800) \ &H800)
  26.    l = l + ((lNum And &H400) \ &H400)
  27.    l = l + ((lNum And &H200) \ &H200)
  28.    l = l + ((lNum And &H100) \ &H100)
  29.    l = l + ((lNum And &H80) \ &H80)
  30.    l = l + ((lNum And &H40) \ &H40)
  31.    l = l + ((lNum And &H20) \ &H20)
  32.    l = l + ((lNum And &H10) \ &H10)
  33.    l = l + ((lNum And &H8) \ &H8)
  34.    l = l + ((lNum And &H4) \ &H4)
  35.    l = l + ((lNum And &H2) \ &H2)
  36.    l = l + ((lNum And &H1) \ &H1)
  37.  
  38.    IsOdiousNumber = l Mod 2 <> 0
  39. End Function
  40.  

222  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero dado es un numero de la suerte en: 16 Agosto 2010, 01:19 am
Karcrack te queria manda un MP pero tenes la casilla llena o si estas en el msn mandame un msg

Saludos.
223  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero dado es un numero de la suerte en: 15 Agosto 2010, 20:34 pm
Tokes nos mato a todos jejej :D
224  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero dado es un numero de la suerte en: 15 Agosto 2010, 20:20 pm
 :-\ me equivoque de signo / por \

Código:
ReDim Preserve Arr(Num \ 2 + (Num Mod 2))

Código
  1. Option Explicit
  2. Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
  3.  
  4. Private Function IsLuckyNumber(ByVal Num As Long) As Boolean
  5.  
  6.    Dim lCount As Long, lPos As Long, i As Long
  7.    Dim Arr() As Long
  8.  
  9.    If Num < 1 Then Exit Function
  10.    If Num Mod 2 = 0 Then Exit Function
  11.  
  12.   ReDim Preserve Arr(Num \ 2 + (Num Mod 2))
  13.  
  14.    For lPos = 1 To Num Step 2
  15.         i = i + 1
  16.         Arr(i) = lPos
  17.    Next
  18.  
  19.  
  20.    lCount = 1
  21.  
  22.    Do While UBound(Arr) > lCount
  23.  
  24.        lCount = lCount + 1
  25.        lPos = Arr(lCount)
  26.  
  27.        Do
  28.            If lPos > UBound(Arr) Then Exit Do
  29.            If lPos < UBound(Arr) Then CopyMemory Arr(lPos), Arr(lPos + 1), 4 * (UBound(Arr) - lPos)
  30.            ReDim Preserve Arr(UBound(Arr) - 1)
  31.            lPos = lPos + Arr(lCount) - 1
  32.        Loop
  33.  
  34.        If Arr(UBound(Arr)) <> Num Then Exit Function
  35.    Loop
  36.  
  37.    IsLuckyNumber = True
  38.  
  39. End Function
  40.  
225  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero dado es un numero de la suerte en: 15 Agosto 2010, 05:12 am
mmm me parece que estas tomando mal mi función yo tengo estos resultados

Dessa
2125

PsYkE1
2000

LeandroA
1172

pongo las tres funciones
Código
  1.  
  2. Option Explicit
  3. Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal length As Long)
  4. Private Declare Sub RtlMoveMemory Lib "Kernel32" (ByVal Destination As Any, ByVal Source As Any, ByVal length As Long)
  5. Private Declare Function GetTickCount Lib "Kernel32" () As Long
  6.  
  7. Private Sub Form_Load()
  8.    Dim x As Long
  9.    Dim s As String
  10.    Dim t1 As Long
  11.    Dim t2 As Long
  12.  
  13.    If App.LogMode = 0 Then End
  14.    Me.AutoRedraw = True
  15.  
  16.    'Dessa
  17.    Me.Print "Dessa"
  18.    t1 = GetTickCount
  19.    For x = 5000 To 7000
  20.        If IsLucky(x) Then
  21.            s = s & x & " "
  22.        End If
  23.    Next
  24.    t2 = GetTickCount
  25.    Me.Print t2 - t1 & vbNewLine
  26.  
  27.    MsgBox s
  28.    s = ""
  29.  
  30.    '*PsYkE1*
  31.    Me.Print "PsYkE1"
  32.    t1 = GetTickCount
  33.    For x = 5000 To 7000
  34.        If Check_Lucky_Number3(x) Then
  35.            s = s & x & " "
  36.        End If
  37.    Next
  38.    t2 = GetTickCount
  39.    Me.Print t2 - t1 & vbNewLine
  40.    MsgBox s
  41.  
  42.    'LeandroA
  43.    Me.Print "LeandroA"
  44.    t1 = GetTickCount
  45.    For x = 5000 To 7000
  46.        If IsLuckyNumber(x) Then
  47.            s = s & x & " "
  48.        End If
  49.    Next
  50.    t2 = GetTickCount
  51.    Me.Print t2 - t1
  52.    MsgBox s
  53. End Sub
  54.  
  55. 'Dessa
  56. Function IsLucky(lngNum As Long) As Boolean
  57.  
  58.  Dim x As Long, cont As Long, contStep As Long, Indice As Long, numLuck() As Long
  59.  
  60.  If lngNum < 1 Then Exit Function
  61.  If lngNum Mod 2 = 0 Then Exit Function
  62.  If lngNum = 1 Or lngNum = 3 Then IsLucky = True: Exit Function
  63.  If lngNum = 5 Then Exit Function
  64.  
  65.  
  66.  For x = 1 To lngNum Step 2
  67.      ReDim Preserve numLuck(contStep)
  68.      numLuck(contStep) = x
  69.      contStep = contStep + 1
  70.  Next
  71.  
  72.  contStep = 0: cont = 0: Indice = 1
  73.  
  74.  While numLuck(Indice) <= UBound(numLuck)
  75.      x = -1
  76.      While x < UBound(numLuck)
  77.          x = x + 1
  78.          If cont = numLuck(Indice) - 1 Then
  79.              cont = 0
  80.          Else
  81.            numLuck(contStep) = numLuck(x)
  82.            cont = cont + 1
  83.            contStep = contStep + 1
  84.          End If
  85.    Wend
  86.  
  87.    If contStep = numLuck(Indice + 1) Then
  88.        ReDim Preserve numLuck(contStep - 2)
  89.    Else
  90.        ReDim Preserve numLuck(contStep - 1)
  91.    End If
  92.    cont = 0
  93.    contStep = 0
  94.    Indice = Indice + 1
  95.  Wend
  96.  
  97.  For x = 0 To UBound(numLuck)
  98.    If numLuck(x) = lngNum Then
  99.      IsLucky = True
  100.      Exit For
  101.    End If
  102.  Next
  103.  
  104. End Function
  105.  
  106.  
  107.  
  108.  
  109. '-PsYkE1
  110. Public Function Check_Lucky_Number3(ByVal lNumber As Long) As Boolean
  111.    Dim lTempArray()            As Long
  112.    Dim NextElim                As Long
  113.    Dim lArrayUBound            As Long
  114.    Dim m                       As Long
  115.    Dim x                       As Long
  116.  
  117.    If lNumber = 1 Or lNumber = 3 Then
  118.        GoTo IsLucky
  119.    ElseIf (lNumber > 1) And (lNumber Mod 2 <> 0) Then
  120.        m = 1
  121.        For x = 1 To lNumber Step 2
  122.            ReDim Preserve lTempArray(m)
  123.            lTempArray(m) = x
  124.            m = m + 1
  125.        Next
  126.        NextElim = 3: m = 2
  127.        Do
  128.            x = NextElim
  129.            Do While x <= UBound(lTempArray)
  130.                lArrayUBound = UBound(lTempArray)
  131.                If Not x = lArrayUBound Then
  132.                    RtlMoveMemory VarPtr(lTempArray(x)), VarPtr(lTempArray(x + 1)), (lArrayUBound - x) * 4
  133.                    ReDim Preserve lTempArray(lArrayUBound - 1)
  134.                Else
  135.                    Exit Function
  136.                End If
  137.                x = x + (NextElim - 1)
  138.            Loop
  139.            m = m + 1
  140.            NextElim = lTempArray(m)
  141.        Loop While Not NextElim > lArrayUBound
  142. IsLucky: Check_Lucky_Number3 = True
  143.    End If
  144. End Function
  145.  
  146. 'LeandroA
  147. Private Function IsLuckyNumber(ByVal Num As Long) As Boolean
  148.  
  149.    Dim lCount As Long, lPos As Long, i As Long
  150.    Dim Arr() As Long
  151.  
  152.    If Num < 1 Then Exit Function
  153.    If Num Mod 2 = 0 Then Exit Function
  154.  
  155.    ReDim Preserve Arr(CLng(Num / 2) + (Num Mod 2))
  156.  
  157.    For lPos = 1 To Num Step 2
  158.         i = i + 1
  159.         Arr(i) = lPos
  160.    Next
  161.  
  162.  
  163.    lCount = 1
  164.  
  165.    Do While UBound(Arr) > lCount
  166.  
  167.        lCount = lCount + 1
  168.        lPos = Arr(lCount)
  169.  
  170.        Do
  171.            If lPos > UBound(Arr) Then Exit Do
  172.            If lPos < UBound(Arr) Then CopyMemory Arr(lPos), Arr(lPos + 1), 4 * (UBound(Arr) - lPos)
  173.            ReDim Preserve Arr(UBound(Arr) - 1)
  174.            lPos = lPos + Arr(lCount) - 1
  175.        Loop
  176.  
  177.        If Arr(UBound(Arr)) <> Num Then Exit Function
  178.    Loop
  179.  
  180.    IsLuckyNumber = True
  181.  
  182. End Function
  183.  

Saludos
226  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero dado es un numero de la suerte en: 13 Agosto 2010, 12:23 pm
a con esto es mas rapido

Código:
    ReDim Preserve Arr(CLng(Num / 2) + (Num Mod 2))
   
    For lPos = 1 To Num Step 2
         i = i + 1
         Arr(i) = lPos
    Next
227  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero dado es un numero de la suerte en: 13 Agosto 2010, 11:57 am
Aca otra version mas rapida de la mia pero sin collection y con array. esta utiliza CopyMemory segun como esta aqui

Código
  1. Option Explicit
  2. Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
  3.  
  4. Private Function IsLuckyNumber(ByVal Num As Long) As Boolean
  5.  
  6.    Dim lCount As Long, lPos As Long, i As Long
  7.    Dim Arr() As Long
  8.  
  9.    If Num < 1 Then Exit Function
  10.    If Num Mod 2 = 0 Then Exit Function
  11.  
  12.    For lPos = 1 To Num Step 2
  13.         i = i + 1
  14.         ReDim Preserve Arr(i)
  15.         Arr(i) = lPos
  16.    Next
  17.  
  18.    lCount = 1
  19.  
  20.    Do While UBound(Arr) > lCount
  21.  
  22.        lCount = lCount + 1
  23.        lPos = Arr(lCount)
  24.  
  25.        Do
  26.            If lPos > UBound(Arr) Then Exit Do
  27.            If lPos < UBound(Arr) Then CopyMemory Arr(lPos), Arr(lPos + 1), 4 * (UBound(Arr) - lPos)
  28.            ReDim Preserve Arr(UBound(Arr) - 1)
  29.            lPos = lPos + Arr(lCount) - 1
  30.        Loop
  31.  
  32.        If Arr(UBound(Arr)) <> Num Then Exit Function
  33.    Loop
  34.  
  35.    IsLuckyNumber = True
  36.  
  37. End Function
  38.  
228  Programación / Programación Visual Basic / Re: Guardar un UDT en: 12 Agosto 2010, 04:56 am
podes usas copymemory de todas formas creo que tuvieras que buscar otra opcion a tu problema.

un ejemplo, solo que utilize todos string porque vi que en algunas partes si mesclamos string con longs o bytes hay algo que se corre y no esta bien, asi que fijate si te sirve o alguien mas sabe bien como pasar las variables con copymemory

Código:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)

Private Type MiUDT
    Nombre As String * 50
    Apellido As String * 50
    Edad As String * 3 'as byte < mmm no me funciona bien
End Type

Private Sub Form_Load()
    Dim MU1 As MiUDT
    Dim MU2 As MiUDT
    Dim sBuff As String
   
    sBuff = String(LenB(MU1), vbNullChar)
   
    With MU1
        .Nombre = "Leandro"
        .Apellido = "Ascierto"
        .Edad = 20 ':)
    End With
   
    CopyMemory ByVal sBuff, ByVal MU1, LenB(MU1)
   
    CopyMemory ByVal MU2, ByVal sBuff, LenB(MU2)
   
    With MU2
        Debug.Print .Nombre
        Debug.Print .Apellido
        Debug.Print .Edad
    End With
   
End Sub

Saludos.

229  Programación / Programación Visual Basic / Re: How to create Progressbar from Image Pattern en: 12 Agosto 2010, 04:31 am
First Save the picture as .bmp (if you like 1 pixels Width) then...

put in the form one picturebox and one HScroll1
Código
  1. Option Explicit
  2. Dim oPicProgress As StdPicture
  3.  
  4. Private Sub Form_Load()
  5.    Set oPicProgress = LoadPicture("C:\cache.bmp")
  6.    Picture1.Height = ScaleY(oPicProgress.Height, vbHimetric, vbTwips)
  7.    Picture1.AutoRedraw = True
  8.    HScroll1.Max = 100
  9. End Sub
  10.  
  11. Private Sub RenderProgress(ByVal lPercent As Long)
  12.    Picture1.Cls
  13.    If lPercent = 0 Then Exit Sub
  14.    Picture1.PaintPicture oPicProgress, 0, 0, Picture1.ScaleWidth * lPercent / 100
  15.    Picture1.Refresh
  16. End Sub
  17.  
  18. Private Sub HScroll1_Scroll()
  19.    RenderProgress HScroll1.Value
  20. End Sub
  21. [code]
  22.  
  23. Saludos.
[/code]
230  Programación / Programación Visual Basic / Re: [RETO] Comprobar si un numero dado es un numero de la suerte en: 11 Agosto 2010, 07:52 am
bueno para quemar algunas neuras (quedan poquitas  >:() , no testie la velocidad pero me conformo con que ande  ;D

Código
  1. Private Function IsLuckyNumber(ByVal Num As Long) As Boolean
  2.  
  3.    Dim lCount As Long, lPos As Long
  4.    Dim c As New Collection
  5.  
  6.    If Num < 1 Then Exit Function
  7.    If Num Mod 2 = 0 Then Exit Function
  8.  
  9.    For lPos = 1 To Num Step 2
  10.        c.Add lPos
  11.    Next
  12.  
  13.    lCount = 1
  14.  
  15.    Do While c.Count > lCount
  16.  
  17.        lCount = lCount + 1
  18.        lPos = c(lCount)
  19.  
  20.        Do
  21.            If lPos > c.Count Then Exit Do
  22.            c.Remove lPos
  23.            lPos = lPos + c(lCount) - 1
  24.        Loop
  25.  
  26.        If c(c.Count) <> Num Then Exit Function
  27.    Loop
  28.  
  29.    IsLuckyNumber = True
  30.  
  31. End Function
  32.  

uso:

Código
  1. Private Sub Form_Load()
  2.    Dim i As Long
  3.    Dim s As String
  4.    For i = 1 To 200
  5.        If IsLuckyNumber(i) Then
  6.            s = s & i & " "
  7.        End If
  8.    Next
  9.    Debug.Print s
  10. End Sub

Saludos.
Páginas: 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [23] 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ... 74
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines