Pergunta

Eu tenho um arquivo de texto de largura fixo, que foi descompactado dos dados do Comp-3 em seqüências de caracteres fixo de largura.

Eu preciso saber como interpretar os seguintes campos:

FIELD-NAME-1 PIC S9(15)V9(3) COMP-3.
FIELD-NAME-2 PIC S9(3)V9(8) COMP-3.
FIELD-NAME-3 PIC S9(3)V9(6) COMP-3.

Estes aparecem no meu arquivo plano como:

FIELD-NAME-1 0123456789123456780
FIELD-NAME-2 01234567890
FIELD-NAME-3 012345670

Eu preciso saber quais números o acima representaria.

Isso está correto:

FIELD-NAME-1 123456789123456.780  --> The first 0 means +ve?
FIELD-NAME-2 012.34567890
FIELD-NAME-3 012.345670

Obrigado pela ajuda. presunto

Foi útil?

Solução

O S9 (15) V9 (3) requer 19 Nybbles (20 na realidade, pois deve fazer com que um número par de NYBBLES) para armazenar:

  • um para o sinal.
  • 15 para o bit inteiro.
  • 3 para o bit não inteiro (V é um decimal implícito, não real).

O sinal geralmente aparece no final como um C ou a D NYBBLE, então a resposta para esta pergunta depende inteiramente do que a descompactação.

Seu primeiro exemplo realmente tem o número certo de dígitos sem A placa, então eu me preocuparia com sua declaração de que um deles representava a placa. Ou isso, ou você parou do "9". Os outros dois exemplos têm dígitos suficientes para o sinal e a parte numérica.

Melhor aposta, veja se você pode obter um número negativo (e outros dados de teste como 1) lá para ver o que ele gera.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top