Bueno pues me aburría (por que parece que no prestan mucha atención a los retos...) y decidí hacer estas funciones.

sLen:

Código: Seleccionar todo

Function sLen(sStr As String) As Long
Dim A() As Byte

A = sStr

sLen = (UBound(A) + 1) / 2
End Function
sStrRev:

Código: Seleccionar todo

Function sStrRev(sStr As String) As String
Dim A() As Byte
Dim i As Long

A = sStr

For i = UBound(A) - 1 To 0 Step -2
    sStrRev = sStrRev & Chr(A(i))
Next i
End Function
Pues nada,

Saludos!
github.com/Slek-Z
Muy bien slek, aunque ya no uso mucho vb me cagaba tener que declarar la variable como byte para poder acceder a los caracteres por subíndices y aparte tener que dividirla entre 2 porqué según recuerdo te dejaba el caracter y un byte en blanco después no?, xD bonitas las funciones :P.
//mHmm..
linkgl escribió:Muy bien slek, aunque ya no uso mucho vb me cagaba tener que declarar la variable como byte para poder acceder a los caracteres por subíndices y aparte tener que dividirla entre 2 porqué según recuerdo te dejaba el caracter y un byte en blanco después no?, xD bonitas las funciones :P.
Sii, es que las Strings son: La letra en Ascii seguido de un carácter nulo (0) xD
Muchas gracias a todos :D

Saludos!!
github.com/Slek-Z
Slek escribió:
linkgl escribió:Muy bien slek, aunque ya no uso mucho vb me cagaba tener que declarar la variable como byte para poder acceder a los caracteres por subíndices y aparte tener que dividirla entre 2 porqué según recuerdo te dejaba el caracter y un byte en blanco después no?, xD bonitas las funciones :P.
Sii, es que las Strings son: La letra en Ascii seguido de un carácter nulo (0) xD
Muchas gracias a todos :D

Saludos!!
Jeje cierto, y lo que pasa es que las strings en vb no son ascii, son unicode no? jeje prefiero acceder al caracter por el arreglo que hay en las cadenas en cualquier otro lenguaje como C, python, php, etc... Gusto en saludarte x)
//mHmm..
linkgl escribió:Jeje cierto, y lo que pasa es que las strings en vb no son ascii, son unicode no? jeje prefiero acceder al caracter por el arreglo que hay en las cadenas en cualquier otro lenguaje como C, python, php, etc... Gusto en saludarte x)
Claro, la string en si es unicode, pero la string está formada por los caracteres en ascii:
La string "Hola" está en unicode, pero está formada por:
Chr(72) & Chr(0) & Chr(111) & Chr(0)... es decir, quedaría en el array de bytes 72 00 111 00 ...

Saludos!!
github.com/Slek-Z
Slek escribió:
linkgl escribió:Jeje cierto, y lo que pasa es que las strings en vb no son ascii, son unicode no? jeje prefiero acceder al caracter por el arreglo que hay en las cadenas en cualquier otro lenguaje como C, python, php, etc... Gusto en saludarte x)
Claro, la string en si es unicode, pero la string está formada por los caracteres en ascii:
La string "Hola" está en unicode, pero está formada por:
Chr(72) & Chr(0) & Chr(111) & Chr(0)... es decir, quedaría en el array de bytes 72 00 111 00 ...

Saludos!!
Jeje sí era lo que tenía entendido x) por eso me gusta mas manejar los bucles en los que tienes que manejar los caracteres de una string en un lenguaje que no sea vb porque es la cadena + el caracter nulo 0x00 o \0 x)
//mHmm..
SpectruS escribió:Hola Slek, el UBound que es y que hace? Saludos.
UBound es una función de VB6 que devuelve el valor máximo que tiene el array que le pasas como parámetro.
LBound es prima-hermana de la anterior, solo que esta última devuelve el valor mínimo del array (por defecto en 0)

Ejemplo:

Dim Matriz1(5 to10) as String

Msgbox UBound(Matriz1) 'Muestra 10
Msgbox LBound(Matriz1) 'Muestra 5

Nota: Si omites el "5 to", el LBound será 0 (por defecto)

Espero que se entienda, si tienes cualquier otra duda, sientete libre de preguntar :D

Saludos!
github.com/Slek-Z
Responder

Volver a “Fuentes”