COBOL - Funções intrínsecas - LENGTH
A função LENGTH retorna um número inteiro igual ao comprimento do argumento nas posições de caracteres nacionais para argumentos de uso NATIONAL e nas posições de caracteres alfanuméricos ou bytes para todos os outros argumentos. Uma posição alfanumérica de caracteres e um byte são equivalentes.
O tipo da função é inteiro.
O valor retornado é um número inteiro de nove dígitos determinado da seguinte maneira:
Se o argument-1 for um literal alfanumérico terminado em nulo, o valor retornado será igual ao número de posições de caracteres alfanuméricos no literal, excluindo o caractere nulo no final do literal.
O comprimento de um item de dados alfanuméricos ou literal que contém uma mistura de caracteres de byte único e byte duplo é contado como se cada byte fosse um caracter de byte único.
O valor retornado inclui posições FILLER implícitas, se houver.
Por exemplo, se o argument-1 for definido como PIC 9 (3) com o uso NATIONAL, o valor retornado será 3, embora o tamanho de armazenamento do argumento seja 6 bytes.
Exemplo
*----------------------------------------------------------------- WORKING-STORAGE SECIOTN. *----------------------------------------------------------------- 01 WS-LENGTH. 05 WSS-CAMPOS01 PIC X(60) VALUE SPACES. 05 WSS-CAMPOS02 PIC X(60) VALUE SPACES. 05 WSS-CAMPOS03 PIC 9(05) VALUE ZEROES. 05 WSS-CAMPOS04 PIC X(60) VALUE SPACES. 05 WSS-RESULTADO PIC 9(10) VALUE ZEROES. 05 WSS-A PIC 9(01) VALUE 1. 05 WSS-B PIC 9(01) VALUE 2. 05 WSS-C PIC 9(01) VALUE 3. 05 WSS-D OCCURS 12 TIMES PIC 9(01). *----------------------------------------------------------------- PROCEDURE DIVISION. *----------------------------------------------------------------- * sintaxe do comando COMPUTE WSS-RESULTADO = FUNCTION LENGTH (WS-LENGTH) DISPLAY 'FUNCTION LENGTH - ' WSS-RESULTADO * Resultado: FUNCTION LENGTH - 0000000210