Sintaxis
LEN( <expresión carácter> / <array> )
Propósito
Devuelve el tamaño de una cadena de caracteres o la cantidad de elementos en un array.
Argumentos
<expresión carácter>
Define la cadena de caracteres cuyo tamaño se determinará.
< array >
Define el nombre del array cuyo número de elementos se determinará.
Utilización
Si la cadena de caracteres especificada es nula (“”), la función LEN() devolverá el valor cero. Sin embargo, el carácter nulo, CHR(0), tiene la longitud de una (1) posición.
De la misma forma, la función LEN() devolverá el valor cero si el array especificado no tiene elementos, es decir, si está vacío. Si el array tiene más de una dimensión, se suministrará únicamente el número de elementos de la primera dimensión. Para determinar el número de elementos de las otras dimensiones, debe utilizarse la propia función LEN() en cada subarray que forme parte del array principal.
Sugerencias
No se debe olvidar de que en el AdvPL cada array multidimensional se compone de varios subarrays. Además, estos subarrays no deben, necesariamente, tener dimensiones uniformes.
Ejemplos
MsgAlert( LEN(“AdvPL”) ) // Resulta 5.
cNome := “Protheus – ERP de TOTVS”
MsgAlert( LEN(cNome) ) // Resulta 23.
MsgAlert( LEN(“”) ) // Resulta cero.
MsgAlert( LEN(CHR(0)) ) // Resulta 1.
El siguiente ejemplo muestra cómo obtener el número de elementos de un array con varias dimensiones:
LOCAL aMatriz[5, 10, 5]
MsgAlert( LEN(aMatriz) ) // Resulta 5, el número de elementos de la primera dimensión.
MsgAlert( LEN(aMatriz[1]) ) // Resulta 10, el número de elementos de la segunda dimensión.
MsgAlert( LEN(aMatriz[1, 1]) ) // Resulta 5, el número de elementos de la tercera dimensión.
// Resulta 250, el número total de elementos del array
MsgAlert( LEN(aMatriz) * LEN(aMatriz[1]) * LEN(aMatriz[1, 1]) )