Retorna o tamanho de uma variável.
Sintaxe
Len( < xParam > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
xParam | qualquer | Variável que será avaliada | X |
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
nCount | numérico | Retorna o tamanho de xParam. |
Observações
- Se a cadeia de caracteres especificada for nula (""), a função LEN() retornará o valor zero. Entretanto, o caractere nulo, CHR(0), tem o comprimento de uma (1) posição.
- Deve-se lembrar que no AdvPL cada array multidimensional é composto por vários subarrays. Além disso, estes subarrays não precisam, necessariamente, ter dimensões uniformes.
A tabela abaixo demonstra os retornos da função LEN para campos criados no SGBD:
Tipo
Retorno
C
O tamanho retornado corresponde ao tamanho de string máxima que pode ser armazenado na coluna.
D
É retornado sempre 8 bytes.
L
É retornado sempre 1 byte.
M
É retornado sempre 10 bytes.
Observação: É importante lembrar que, este valor é retornado por compatibilidade e não corresponde a capacidade real de armazenamento da coluna. O tamanho máximo de armazenamento de uma coluna do tipo "M" está condicionada ao driver RDD utilizado.N
Juntamente com o valor retornado na quarta posição, quantidade de decimais, informa a capacidade de armazenamento de valores numéricos no campo.
Exemplos
User function exemplo() MsgAlert( LEN("AdvPL") ) // Resulta 5 cNome := "Protheus ERP da TOTVS" MsgAlert( LEN(cNome) ) // Resulta 23 MsgAlert( LEN("") ) // Resulta zero MsgAlert( LEN(CHR(0)) ) // Resulta 1 Return //O exemplo abaixo demonstra como obter o número de elementos de um array com várias dimensões: User Function exemplo2() LOCAL aMatriz[5, 10, 5] MsgAlert( LEN(aMatriz) ) // Resulta 5, o número de elementos da primeira dimensão MsgAlert( LEN(aMatriz[1]) ) // Resulta 10, o número de elementos da segunda dimensão MsgAlert( LEN(aMatriz[1, 1]) ) // Resulta 5, o número de elementos da terceira dimensão // Resulta 250, o número total de elementos do array MsgAlert( LEN(aMatriz) * LEN(aMatriz[1]) * LEN(aMatriz[1, 1]) ) Return