COBOL - Funções intrínsecas - LENGTH


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Funções intrínsecas - LENGTH
Intrinsic functions - Enterprise COBOL for z/OS 6.3.0

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.

argument-1
Pode ser:
  • Um literal alfanumérico ou um literal nacional
  • Um item de dados de qualquer classe, exceto DBCS
  • Um item de dados descrito com o uso POINTER, PROCEDURE-POINTER, FUNCTION-POINTER ou OBJECT REFERENCE
  • O registro especial ADDRESS OF
  • O registro especial LENGTH OF
  • O registro especial XML-NTEXT
  • O registro especial XML-TEXT

O valor retornado é um número inteiro de nove dígitos determinado da seguinte maneira:

  • Se o argument-1 for um literal alfanumérico ou um item de dados elementar da classe alfabética ou alfanumérica, o valor retornado será igual ao número de posições de caracteres alfanuméricos no argumento.

    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.

  • Se o argument-1 for um item de grupo alfanumérico, o valor retornado será igual ao comprimento do argument-1 nas posições de caracteres alfanuméricos, independentemente do conteúdo do grupo.
    Se qualquer item de dados subordinado ao argument-1 for descrito com a frase DEPENDING da cláusula OCCURS, o comprimento do argumento-1 será determinado usando o conteúdo do item de dados especificado na frase DEPENDING.
    Essa avaliação é realizada de acordo com as regras da cláusula OCCURS para um item de dados de envio.
    Para mais informações, consulte as discussões da cláusula OCCURS e da cláusula USAGE.

    O valor retornado inclui posições FILLER implícitas, se houver.

  • Se o argument-1 for um literal nacional ou um item de dados elementar descrito com o uso NATIONAL, o valor retornado será igual ao tamanho do argument-1 nas posições de caracteres nacionais.

    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.

  • Se o argument-1 for um item de grupo nacional, o valor retornado será igual ao tamanho do argument-1 nas posições de caracteres nacionais.
    Se qualquer item de dados subordinado ao argument-1 for descrito com a frase DEPENDING da cláusula OCCURS, o comprimento do argument-1 será determinado usando o conteúdo do item de dados especificado na frase DEPENDING.
    Essa avaliação é realizada de acordo com as regras da cláusula OCCURS para um item de dados de envio.
    Para mais informações, consulte as discussões da cláusula OCCURS e da cláusula USAGE.

    O valor retornado inclui posições FILLER implícitas, se houver.

  • Caso contrário, o valor retornado é o número de bytes de armazenamento ocupado pelo argument-1 .

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 
          

© Copyright IBM Corp.