CharSplit7913 Separa un string en un array de caracteres.

Iniciado por 79137913, Febrero 04, 2013, 12:08:32 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 04, 2013, 12:08:32 PM Ultima modificación: Diciembre 12, 2013, 03:49:39 PM por Expermicid
HOLA!!!

Bueno, mas que el titulo no puedo decir, abajo una explicacion.

Código: vb
Private Sub Form_Load()
Dim hola() As String
hola = CharSplit7913("hola")
' Devuelve
' Hola(0) = "h"
' Hola(1) = "o"
' Hola(2) = "l"
' Hola(3) = "a"
End Sub

Private Function CharSplit7913(expression As String) As String()
    Dim X        As Long
    Dim lExp     As Long
    Dim ExpB()   As Byte
    Dim AuxArr() As String

    ExpB = expression
    lExp = UBound(ExpB)
    ReDim AuxArr(lExp)

    For X = 0 To lExp Step 2
        AuxArr(X / 2) = ChrW$(ExpB(X))
    Next

    ReDim Preserve AuxArr(lExp \ 2)

    CharSplit7913 = AuxArr

End Function


Les paso a explicar como funciona esta funcion ya que tiene un poco de "magia negra" a la cual con este post los iniciare.

Empezamos declarando las variables, nada raro, salvo que uso tipo long en vez de integer... ¿Por que? porque el tipo long en VB6 es el tipo numerico mas rapido.
Luego, creo un array sin tamaño definido tipo byte (muy importante)
Y por ultimo un array string donde  se guardara el resultado que luego se plasmara en lo que devuelve la func.
Que es lo que hago aca
    ExpB = expression
Esto se llama "Evil Type Convert" nos aprovechamos de que el motor de VB puede hacer varias conversiones de tipos a una velocidad impresionante sin usar las funciones clasicas igualando ambos valores, en este caso convierto el string en un array de bytes.
Luego con esta instruccion
        AuxArr(X / 2) = ChrW$(ExpB(X))
Paso de un array de bytes a un array de texto los caracteres.

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                No tienes permitido ver los links. Registrarse o Entrar a mi cuenta