Sumário

Search

  1. Prefácio
  2. A Linguagem de Transformação
  3. Constantes
  4. Operadores
  5. Variáveis
  6. Datas
  7. Funções
  8. Criação de funções personalizadas
  9. Referência de API da Função Personalizada

Referência de Linguagem de Transformação

Referência de Linguagem de Transformação

BINARY_SECTION

BINARY_SECTION

Retorna uma parte de um valor binário.
Para usar a função
BINARY_SECTION
, defina a variável de ambiente
INFA_ENABLE_BINARY_FUNCTIONS
como True ou Yes.

Sintaxe

BINARY_SECTION(
binary, start [,length]
)
A tabela a seguir descreve o argumento para este comando:
Argumento
Obrigatório/
Opcional
Descrição
binário
Obrigatório
Você pode inserir um valor binário ou qualquer expressão de transformação que retorne um tipo de dados binário.
início
Obrigatório
Você pode inserir um número inteiro ou qualquer expressão de transformação que retorne um número inteiro.
A posição no binário em que você deseja começar a contagem. Se a posição inicial for um número positivo,
BINARY_SECTION
localizará a posição inicial contando a partir do começo do binário de entrada.
Se a posição inicial for um número negativo,
BINARY_SECTION
localizará a posição inicial contando a partir do fim do binário de entrada.
Se a posição inicial for 0,
BINARY_SECTION
pesquisará desde o primeiro byte no binário de entrada.
length
Opcional
Você pode inserir um número inteiro maior que 0 ou qualquer expressão de transformação que retorne um número inteiro positivo.
O número de bytes que você deseja que
BINARY_SECTION
retorne. Se você omitir o argumento length,
BINARY_SECTION
retornará todos os bytes da posição inicial até o final do binário de entrada. Se você transmitir um inteiro negativo ou 0, a função retornará um erro.

Valor de Retorno

Binário.
NULL se a entrada for um valor nulo.

Exemplo

As expressões a seguir retornam os primeiros três bytes de um valor binário.
BINARY_SECTION( SYSID, 0, 3 )
SYSID (Shown in Hex)
RETURN VALUE (Shown in Hex)
0x00010203
0x000102
0x0405060708
0x040506
NULL
NULL
As expressões a seguir retornam os bytes 4 a 8 de um valor binário.
BINARY_SECTION( SYSID, 4, 5 )
SYSID (Shown in Hex)
RETURN VALUE (Shown in Hex)
0x000102030405060708
0x0304050607
0x0405060708090A0B
0x0708090A0B
NULL
NULL
Você também pode passar um valor inicial negativo. A expressão ainda lê o binário de origem da esquerda para a direita ao retornar o resultado do argumento
length
:
BINARY_SECTION( SYSID, -6, 5 )
SYSID (Shown in Hex)
RETURN VALUE (Shown in Hex)
0x000102030405060708
0x0304050607
0x0405060708090A0B
0x060708090A
NULL
NULL
Quando o argumento
length
é maior que o valor de entrada,
BINARY_SECTION
retorna todos os bytes da posição inicial até o final do valor de entrada. Considere o seguinte exemplo:
BINARY_SECTION( SYSID, 2, 8 )
em que SYSID é o equivalente binário de 0x000102030405.
O valor de retorno é o equivalente binário de 0x0102030405. Compare esse resultado ao seguinte exemplo:
BINARY_SECTION ( SYSID, -2, 8)
em que SYSID é o equivalente binário de 0x000102030405.
O valor de retorno é o equivalente binário de 0x0405.