Bueno, el codigo es una estupidez, pero se me paso por la cabeza y es similar al StrRev Alternativo que postee hace horas.Aqui os lo dejo.

Código: Seleccionar todo

'##############################
'## Len Alternativo          ##
'## Author: k0ws             ##
'##############################
Public Function Len_Alter(Palabra As String)
Dim a As Long
Dim b() As Byte
Dim c As Integer
b = StrConv(Palabra, vbFromUnicode)
For a = 0 To UBound(b())
c = c + 1
Next a
Len_Alter = c
End Function
-Saludos-
Gracias por la función el loop es innecesario.


Public Function Len_Alter(Palabra As String)
Dim a As Long
Dim b() As Byte
Dim c As Integer
b = StrConv(Palabra, vbFromUnicode)
Len_Alter =UBound(b())
End Function





saludos
Imagen
Pink escribió:Gracias por la función el loop es innecesario.


Public Function Len_Alter(Palabra As String)
Dim a As Long
Dim b() As Byte
Dim c As Integer
b = StrConv(Palabra, vbFromUnicode)
Len_Alter =UBound(b())
End Function





saludos
Creo te equivocaste compadre

Public Function Len_Alter(Palabra As String)
Dim b() As Byte
b = StrConv(Palabra, vbFromUnicode)
Len_Alter = UBound(b()) + 1
End Function

Este va correcto , el tuyu retorna una cadena a minos

Buen Code Knows



Saludos
Indetectables RAT v.0.9.5

@Indetectables Team
Como veo que cada uno saco una version, saco yo una indicando una serie de reglas dentro del estandard Ascii
Dim vector() As Byte, ascii As Byte
Dim i As Long, longitud As Long, max As Long

Public Function Length(str As String) As Long

vector = StrConv(str, vbFromUnicode)
longitud = (UBound(vector))
max = longitud + 1

If (vector(longitud) < 48) Or (vector(longitud) > 57) And (vector(longitud) < 65) Or (vector(longitud) > 90) And (vector(longitud) < 97) Or (vector(longitud) > 122) Then
ascii = 48
ReDim vector(max) As Byte
vector(max) = ascii
Call medir
Length = i
ElseIf (vector(longitud) > 47) And (vector(longitud) < 58) Then
ascii = 78
ReDim vector(max) As Byte
vector(max) = ascii
Call medir
Length = i
Else
ascii = 94
ReDim vector(max) As Byte
vector(max) = ascii
Call medir
Length = i
End If
End Function

Private Sub medir()
i = 0
While (Chr(vector(i)) <> Chr(ascii))
i = i + 1
Wend
End Sub
Explico como va para que no se lien algunos
' si el ultimo indice del array es menor de 48 o mayor de 57 y menor de 65 o mayor de 90 y menor de 97 o mayor de 122 es simbolo
'a si que le asignamos un 0 al array despues de redimensionarlo y si es mayor de 47 y menor de 58 es numero a si que asignamos la N
'en caso contrario es una letra y le asignamos ^ para usarlos como fin del bucle y asi determinar el numero de chars que tiene la cadena,
'despues llamamos a un procedimiento que mientras cada byte codificado a char sea distinto de lo que se le asigno ejemplo ^ el iterador se incrementa
salu2
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
@M3 mala mía jajajaja (ya perdí el indice)

@strup buena la idea de contar los caracteres (letras) en fin no dejan de ser caracteres los que no son letras :P


saludos sigue así k0ws.


saludos
Imagen
Pink escribió:
@strup buena la idea de contar los caracteres (letras) en fin no dejan de ser caracteres los que no son letras :P

saludos
claro men , un saludo crack
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Responder

Volver a “Fuentes”