COBOL - Funções intrínsecas - USUBSTR



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

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

A função USUBSTR retorna uma substring dos dados em um argumento de item de dados de caracteres que contém dados UTF-8 ou UTF-16.

O tipo de função é alfanumérico, nacional ou UTF-8, dependendo da classe do argument-1.

argument-1
Deve ser da classe alfabética, alfanumérica, nacional ou UTF-8.
O argument-1 deve conter caracteres codificados UTF-8 ou UTF-16 válidos:

  • Se o argument-1 for da classe alfabética, alfanumérica ou UTF-8, ele deverá conter dados UTF-8 válidos.
  • Se o argument-1 for da classe nacional, ele deverá conter dados UTF-16 válidos.
argument-2
Deve ser um número inteiro maior que zero.
Representa a posição inicial de uma substring no argument-1.
argument-3
Deve ser um número inteiro maior ou igual a zero.
Representa o comprimento de uma substring no argument-1.

Nota:
A soma dos argument-2 e argument-3 menos um deve ser menor ou igual a ULENGTH (argument-1).

Suponha que o argument-1 seja alfabético ou alfanumérico, argument-2 = ne argumento 3 = m, o valor retornado seja um item alfanumérico que contenha m caracteres UTF-8 a partir do argument-1, começando com o enésimo caractere UTF-8.
Suponha que argument-1 seja um item de dados nacional, argument-2 = ne argument-3 = m, o valor retornado seja um item nacional que contenha m caracteres UTF-16 a partir do argument-1, começando com o enésimo caractere UTF-16.

Exemplo 1

Se A é um item alfanumérico que contém o valor UTF-8 x'4BC3A4666572 '(' Käfer '), os valores retornados são os seguintes:

  • USUBSTR(A 1 2) retorna x'4BC3A4' ('')
  • USUBSTR(A 2 1) retorna x'C3A4' ('ä')
  • USUBSTR(A 2 2) retorna x'C3A466' ('äf')
  • USUBSTR(A 3 2) retorna x'6665' ('fe')

Exemplo 2

Se B é um item nacional que contém o valor UTF-16 x'005400F6006200750072D858DC6B0073 '(' Töber ?? s '), os valores retornados são os seguintes:

  • USUBSTR(B 1 2) retorna x'005400F6' ('')
  • USUBSTR(B 2 1) retorna x'00F6' ('ö')
  • USUBSTR(B 2 2) retorna x'00F60062' ('öb')
  • USUBSTR(B 3 2) retorna x'00620075' ('be')
  • USUBSTR(B 5 2) retorna x'0072D858DC6B' ('r??')
  • USUBSTR(B 6 2) retorna x'D858DC6B0073' ('??s')

Exemplo 3

Se o argumento 1 for um item codificado em UTF-8 e o argumento UTF-8 contiver caracteres compostos, os caracteres combinados serão contados individualmente.
Por exemplo, quando codificado em UTF-8, o caractere Unicode ä pode ser x'C3A4 'ou x'61CC88'.
Com um dos caracteres UTF-8 no argumento-1, os valores retornados da função USUBSTR são diferentes.

Veja a tabela a seguir para detalhes.

Valores Retornados da Função USUBSTR

argument-1 Codificação Unicode Codificação UTF-8 Valores retornados da função USUBSTR
C = äK U+00E4 + U+004B(forma pré-composta,
letra minúscula latina a com diérese + letra maiúscula latina K
x'C3A44B' (äK) USUBSTR (C 1 1) retorna x'C3A4' (ä)
USUBSTR (C 2 1) retorna x'4B' (K)
USUBSTR (C 1 2) retorna x'C3A44B' (äK)
U+0061 + U+0308 + U+004B(decomposição canônica,
letra minúscula latina a + diaerese combinada + letra maiúscula latina K)
x'61CC884B' (äK) USUBSTR (C 1 1) retorna x'61' (a)
USUBSTR (C 2 1) retorna x'CC88' (¨)
USUBSTR (C 1 2) retorna x'61CC88' (ä)
USUBSTR (C 1 3) returns x'61CC884B' (äK)


© Copyright IBM Corp.