Frage

Ich habe eine Textdatei mit fester Breite, die von Comp-3-Daten in feste Breite ausgepackt wurde.

Ich muss wissen, wie man die folgenden Felder interpretiert:

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.

Diese erscheinen in meiner flachen Datei als:

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

Ich muss wissen, welche Zahlen die oben genannten darstellen würden.

Ist das richtig:

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

Danke für die Hilfe. Schinken

War es hilfreich?

Lösung

Der S9 (15) V9 (3) erfordert 19 Nybbles (20 in Wirklichkeit, da es eine gleichmäßige Anzahl von Nybbles ergeben muss):

  • eine für das Zeichen.
  • 15 für das Ganzzahl.
  • 3 Für das Nichtteger-Bit (V ist eine implizite Dezimalzahl, keine echte).

Das Schild erscheint normalerweise am Ende als C oder ein D Nybble, also hängt die Antwort auf diese Frage ganz davon ab, was das Auspacken getan hat.

Ihr erstes Beispiel hat tatsächlich die richtige Anzahl von Ziffern ohne Das Zeichen, also würde ich mich mit Ihrer Aussage befassen, dass einer von ihnen das Zeichen darstellte. Entweder das oder Sie haben die "9" aufgehört. Die beiden anderen Beispiele haben genügend Ziffern sowohl für das Zeichen als auch für das numerische Teil.

Am besten sehen Sie, ob Sie eine negative Zahl (und andere Testdaten wie 1) dort einbeziehen können, um zu sehen, was sie generiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top