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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  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 ... 331
221  Programación / Programación Visual Basic / Re: Navegar por carpetas mediante código en: 12 Noviembre 2012, 19:35 pm
y ¿El código fuente? me da un poco de cosquillas ejecutar un exe!¡.

Dulces Lunas!¡.
222  Programación / Programación C/C++ / Re: Realizar programa en C que ordene nombres desde archivo de texto. en: 12 Noviembre 2012, 06:32 am
qsort()

Dulces Lunas!¡.
223  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Como crear un .DLL con funciones de Logueo para muchos usuarios? en: 10 Noviembre 2012, 06:00 am
.NET tienes MessageBox() en lugar de msgbox()...

Aun así puedes igual usar SQLite...

Dulces Lunas!¡.
224  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Como crear un .DLL con funciones de Logueo para muchos usuarios? en: 9 Noviembre 2012, 06:32 am
mmm algo mas "facil" es guardar las estructuras...

Código
  1.  
  2. type cuentausuario
  3.    usuario as string * 50 '  // Son necesarios los buffer
  4.    contraseña as string * 10 '  // Son necesarios los buffer
  5.    correo as string * 25 '  // Son necesarios los buffer
  6. end type
  7.  
  8.  

y en el guardado solo hace un put ff,, variable

Código
  1.  
  2. dim cuenta as cuentausuario
  3. ...
  4. put ff,,cuenta
  5. ...
  6.  
  7. para leerla
  8.  
  9. ...
  10. Get ff,,cuenta
  11. ...
  12.  
  13.  

Lo más recomendable es usar una base de datos los archivos SON LENTOS, SIN ESTRUCTURA y terminan "JODIÉNDOSE".

Dulces Lunas!¡.
225  Programación / Programación Visual Basic / Re: Alternative Replace & Right Functions en: 8 Noviembre 2012, 05:56 am
mmm ya que recuerdo tengo unos algoritmos en C ( Son cuando estaba aprendiendo dicho lenguaje ya de lleno ).
http://foro.elhacker.net/programacion_cc/ansi_c_split_strlen_mid_instr_strcpy-t316599.0.html

Muchas alternativas ya creadas por varios usuarios de este foro (Nos dio por hacer "retos")...
http://foro.elhacker.net/programacion_visual_basic/recopilacion_de_retos_vbclassic_por_79137913-t360748.0.html

P.D.: Revisa los temas con chincheta (Pegados).

Dulces Lunas!¡.
226  Programación / Programación Visual Basic / Re: Alternative Replace & Right Functions en: 8 Noviembre 2012, 05:45 am
Como dije ya no trabajo con vb6, las funciones que quieras reemplazar te tocaran codificarlas usando de For next y los if then primero fíjate como trabajan (Objetivo de la función) y después re-créala no es difícil.

Dulces Lunas!¡.
227  Programación / Programación Visual Basic / Re: Documentación en: 7 Noviembre 2012, 10:24 am
que diferencia hay entre el vb 6 y el vb 2010? solo la version o tienen conceptos diferentes

Uff ojala fuera solo eso, .Net es un mundo y comparado con vb6 este se queda corto.

Dulces Lunas!¡.
228  Programación / Programación Visual Basic / Re: [UPDATE] Deshabilitar TaskMgr Windows8 en: 7 Noviembre 2012, 10:22 am
¿VB6 sigue teniendo soporte en W$8?...

Dulces Lunas!¡.
229  Programación / Programación Visual Basic / Re: Alternative Replace & Right Functions en: 7 Noviembre 2012, 09:59 am
Yo primero haria un do loop y CONTARIA cada coherencia con stFind cada offset de dicha coherencia la almacenaría en una cola o algún vector (simulando la cola), después al termino de este  pasaría a crear un buffer y por ultimo un while que copiaría a tramos cada bloque de caracteres: Esto se traduce en velocidad...

OJO: NO SE SI FUNCIONA puesto que lo escribí en el Block de Notas y estoy bajo Linux...

Código
  1.  
  2. Function AltReplace(stExpression As String, stFind As String, stReplace As String) As String
  3. Dim offsetDst As long
  4. Dim offsetSrc As long
  5. dim listOffset() As long
  6. dim listOffsetCount as long
  7. dim listOffsetIndex as long
  8.  
  9.    if Len(stFind) == 0 then
  10.        AltReplace = stExpression
  11.        exit function
  12.    end if
  13.  
  14.    '   // Match Count
  15.    offsetSrc = 1
  16.    Do
  17.        offsetSrc = InStr(offsetSrc, stExpression, stFind)
  18.        If lnCount <= offsetSrc Then Exit Do
  19.        redim preserve listOffset(0 to listOffsetCount)
  20.        listOffset(listOffsetCount) = offsetSrc
  21.        listOffsetCount = (listOffsetCount + 1)
  22.        offsetSrc = (offsetSrc + len(stFind))
  23.    Loop
  24.  
  25.    if listOffsetCount == 0 then
  26.        AltReplace = stExpression
  27.        exit function
  28.    end if
  29.  
  30.    '   //  Buffer
  31.    AltReplace = space((stExpression - (Len(stFind) * listOffsetCount)) + (Len(stReplace) * listOffsetCount))
  32.  
  33.    '   // Copiamos por "bloques"
  34.    while not (listOffsetIndex = listOffsetCount)
  35.        if listOffset(listOffsetIndex) > 1 then
  36.            offsetDst = (listOffset(listOffsetIndex - 1) + (len(stReplace) * listOffsetIndex))
  37.            offsetSrc = (listOffset(listOffsetIndex - 1) + (len(stFind) * listOffsetIndex))
  38.            mid$(AltReplace, _
  39.                 offsetDst, _
  40.                 (offsetDst - listOffset(listOffsetIndex))) = mid$(stExpression, _
  41.                                                                   offsetSrc, _
  42.                                                                   (offsetSrc - (listOffset(listOffsetIndex) - offsetSrc)))
  43.        else
  44.            mid$(AltReplace, 1, listOffset(listOffsetIndex)) = mid$(stExpression, _
  45.                                                                    1, _
  46.                                                                    listOffset(listOffsetIndex))
  47.        end if
  48.        mid$(AltReplace, listOffset(listOffsetIndex), len(stReplace)) = stReplace
  49.  
  50.        listOffsetIndex = (listOffsetIndex + 1)
  51.  
  52.    Wend
  53.  
  54. End Function
  55.  
  56.  

 * En lugar de usar Mid$() seria bueno usar CopyMemory() o algun For Next, o si no quieres APIS usa mMemoryEx (Busca en el foro)

 * Configuración de mMemoryEx y/o mMemory:
http://foro.elhacker.net/programacion_visual_basic/mmemory_writeprocessmemoryvbacopybytesrtlmovememory_replacement_noapi-t343343.0.html

 * ejemplo mMemoryEx:
http://foro.elhacker.net/programacion_visual_basic/class_cstack_vb6-t365372.0.html;msg1760659#msg1760659

Código:

Option Explicit

Public Const PAGE_EXECUTE_READWRITE As Long = &H40
Public Const PAGE_EXECUTE_WRITECOPY As Long = &H80
Public Const PAGE_EXECUTE_READ As Long = &H20
Public Const PAGE_EXECUTE As Long = &H10
Public Const PAGE_READONLY As Long = 2
Public Const PAGE_WRITECOPY As Long = &H8
Public Const PAGE_NOACCESS As Long = 1
Public Const PAGE_READWRITE As Long = &H4
 
Declare Function VarPtrArr Lib "msvbvm60.dll" Alias "VarPtr" (ByRef Ptr() As Any) As Long
Declare Function IsBadWritePtr Lib "kernel32" (ByVal lp As Long, ByVal ucb As Long) As Long
Declare Function IsBadReadPtr Lib "kernel32" (ByVal lp As Long, ByVal ucb As Long) As Long
Declare Function VirtualProtect Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flNewProtect As Long, ByVal lpflOldProtect As Long) As Long

Private bvHack(0)               As Byte
Private lHackDelta              As Long
Private bInitialized            As Boolean
 
Public Function initialize() As Boolean ' By KarCrack
    On Error GoTo Error_Handle
 
    bvHack(-1) = bvHack(-1) 'Error check
    lHackDelta = VarPtr(bvHack(0))
 
    initialize = True
    bInitialized = initialize
    Exit Function
Error_Handle:
    If Err.Number = 9 Then Debug.Print "Remember to tick 'Remove array boundary check' and compile before using"
'    End
End Function
 
Public Function getByte(ByVal lptr As Long) As Byte ' By KarCrack
    If bInitialized Then getByte = bvHack(lptr - lHackDelta)
End Function
 
Public Function getWord(ByVal lptr As Long) As Integer ' By KarCrack
    If bInitialized Then getWord = makeWord(getByte(lptr + &H0), getByte(lptr + &H1))
End Function
 
Public Function getDWord(ByVal lptr As Long) As Long ' By KarCrack
    If bInitialized Then getDWord = makeDWord(getWord(lptr + &H0), getWord(lptr + &H2))
End Function
 
Public Sub putByte(ByVal lptr As Long, ByVal bByte As Byte) ' By KarCrack
    If bInitialized Then bvHack(lptr - lHackDelta) = bByte
End Sub
 
Public Sub putWord(ByVal lptr As Long, ByVal iWord As Integer) ' By KarCrack
    If bInitialized Then Call putByte(lptr + &H0, iWord And &HFF): Call putByte(lptr + &H1, (iWord And &HFF00&) / &H100)
End Sub
 
Public Sub putDWord(ByVal lptr As Long, ByVal lDWord As Long) ' By KarCrack
    If bInitialized Then Call putWord(lptr + &H0, IIf(lDWord And &H8000&, lDWord Or &HFFFF0000, lDWord And &HFFFF&)): Call putWord(lptr + &H2, (lDWord And &HFFFF0000) / &H10000)
End Sub
 
Public Function makeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long '[http://www.xbeat.net/vbspeed/c_MakeDWord.htm#MakeDWord05]
    makeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&)
End Function

'   //  Funciones agregadas...

Function makeWord(ByVal lByte As Byte, ByVal hByte As Byte) As Integer ' By BlackZeroX
    makeWord = (((hByte And &H7F) * &H100&) Or lByte)
    If hByte And &H80 Then makeWord = makeWord Or &H8000
End Function

'/////////////////////
Public Function allocMem(ByVal lSize As Long) As Long
'   //  By BlackZeroX (Thanks to Karcrack).
'   //  Retorna la Dirrecion de un SafeArray.
Dim pBuff()     As Byte
    If (lSize <= &H0) Then Exit Function
    ReDim pBuff(0 To (lSize - 1))
    allocMem = getDWord(VarPtrArr(pBuff))
    putDWord VarPtrArr(pBuff), 0
End Function
 
Public Function reallocMem(ByVal lptr As Long, ByVal lSize As Long) As Long
'   //  By BlackZeroX (Thanks to Karcrack).
'   //  Retorna la Dirrecion de un SafeArray que se retorno en allocMem()/reallocMem().
Dim pBuff()     As Byte
    putDWord VarPtrArr(pBuff), lptr
    If Not (lSize = &H0) Then
        ReDim Preserve pBuff(0 To (lSize - 1))
    Else
        Erase pBuff
    End If
    reallocMem = getDWord(VarPtrArr(pBuff))
    putDWord VarPtrArr(pBuff), 0
End Function
 
Public Function getMemData(ByVal lptr As Long) As Long
'   //  By BlackZeroX (Thanks to Karcrack).
'   //  lPtr debe ser el valor (Address) que retorno en allocMem()/reallocMem().
'   //  Esta funcion retorna la Dirrecion de memoria EDITABLE de lPtr (Dirrecion de un SafeArray).
'   //  Referencias.
'   //  http://msdn.microsoft.com/en-us/library/aa908603.aspx
    If (lptr = &H0) Then Exit Function
    getMemData = getDWord(lptr + &HC)    '   //  obtenemos pvData
End Function
 
Public Sub releaseMem(ByVal lptr As Long)
'   //  By BlackZeroX (Thanks to Karcrack).
'   //  lPtr debe ser la Dirrecion que retorno en allocMem()/reallocMem().
Dim pBuff()     As Byte
    putDWord VarPtrArr(pBuff), lptr
End Sub
 
Public Sub releaseMemStr(ByVal lptr As Long)
'   //  By BlackZeroX (Thanks to Karcrack).
'   //  lPtr debe ser la Dirrecion que retorno en cloneString().
Dim sStr        As String
    putDWord VarPtr(sStr), lptr
End Sub
 
Public Sub swapVarPtr(ByVal lpVar1 As Long, ByVal lpVar2 As Long)
'   //  By BlackZeroX (Thanks to Karcrack).
Dim lAux    As Long
    lAux = getDWord(lpVar1)
    Call putDWord(lpVar1, getDWord(lpVar2))
    Call putDWord(lpVar2, lAux)
End Sub
 
Public Function cloneString(ByVal lpStrDst As Long, ByVal sStrSrc As String) As Long
'   //  By BlackZeroX (Thanks to Karcrack).
'   //  lPtr -> Puntero a una variable destino (Preferiblemente String).
'   //  sStr -> Cadena Clonada ( gracias a Byval ).
Dim lpStrSrc        As Long
    If Not (lpStrDst = &H0) And (mMemoryEx.initialize = True) Then
        Call mMemoryEx.swapVarPtr(lpStrDst, VarPtr(sStrSrc))
        Call mMemoryEx.swapVarPtr(VarPtr(cloneString), VarPtr(sStrSrc))
    End If
End Function
 
Public Function copyMemory(ByVal lpDst As Long, ByVal lpSrc As Long, ByVal lLn As Long) As Long
'   //  By BlackZeroX (Thanks to Karcrack).
Dim i       As Long
    If (lpSrc = &H0) Or (lpDst = &H0) Or (lLn = &H0) Then Exit Function
  
    i = (lLn Mod 4)
    If ((i And &H2) = &H2) Then
        Call putWord(lpDst, getWord(lpSrc))
        lpDst = (lpDst + 2)
        lpSrc = (lpSrc + 2)
        copyMemory = (copyMemory + 2)
        lLn = (lLn - 2)
    End If
    If ((i And &H1) = &H1) Then
        Call putByte(lpDst, getByte(lpSrc))
        lpDst = (lpDst + 1)
        lpSrc = (lpSrc + 1)
        copyMemory = (copyMemory + 1)
        lLn = (lLn - 1)
    End If
    For i = 0 To (lLn - 1) Step 4
        Call putDWord(lpDst + i, getDWord(lpSrc + i))
    Next
    copyMemory = (copyMemory + lLn)
  
End Function


Dulces Lunas!¡.
230  Programación / Programación Visual Basic / Re: [Ayuda] Code Visual Basic en: 5 Noviembre 2012, 04:24 am
Madre "Sabes de Punteros y Offsets" pero no usar los if en conjunto de los checkbox (google)!¡.

Dulces Lunas!¡.
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 ... 331
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines