obtener longitud de una cadena sin LEN

Iniciado por x64core, 5 Septiembre 2011, 03:44 AM

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

LeandroA

#10
Hola otra opcion con apis


Option Explicit
Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Private Sub Form_Load()
   Dim s As String
   s = "Hola mundo"
   MsgBox lstrlenW(StrPtr(s))
End Sub


EDIT:  ahora que recuerdo si dentro de la cadena tenes un Nullchar chr(0) solo te cuenta hasta esa posición

Psyke1

La forma más rápida que sé de hacerlo es esta:
Código (vb) [Seleccionar]
Option Explicit

Private Sub Form_Load()
Dim s$
    s = "Hola mundo"
    MsgBox LenB(s) \ 2
End Sub


La función LenB() te devuelve la longitud en Bytes de una cadena, después dividimos entre dos y ya está. :rolleyes:
Los test que hice cuando programaba me dieron esta conclusión en cuanto a rapidez se refiere:
Lenb\2 > Len() > lstrlenW()



@BlackZeroX▓▓▒▒░░: Dios mío, había olvidado la dedicación que pones en tus explicaciones. :D

DoEvents! :P