hier ein wenig anders Versuch, Ihre Fragen zu beantworten.
PIC S9 (15) V9 (3) COMP-3 sieht wie folgt in der Datei:
00 00 00 00 00 00 00 00 00 0F
Wenn der Wert -4.568.248 war.323, wäre es:
00 00 00 00 04 56 82 48 32 3D
Dies hilft Ihnen nicht, kann aber anderen helfen. ausgepackt der vorherige Wert aussehen würde:
F0 F0 F0 F0 F0 F0 F0 F0 F0 F4 F5 F6 F8 F2 F4 F8 F3 F2 D3 (or F3 as the last byte, therefore losing the sign)
Dieses Feld hat 15 (tatsächlich 16) Ziffern vor dem Komma und 3 nach.
Obwohl es nur 18 Ziffern (15 + 3) anfordert, wird es 19, um es zu einem geraden Feld mit dem Vorzeichen zu machen (eine Ziffer an der Vorderseite hinzugefügt, um es 10 Bytes lang auf der Datei zu machen). Es empfiehlt sich, gepackte Felder immer mit einer ungeraden Länge zu versehen, um diese Verwirrung zu vermeiden.
** Der letzte Buchstabe kennzeichnet das Vorzeichen, C & F sind positiv, D ist negativ. Überprüfen Sie für Ihr Programm auf negativ (D), und wenn nicht, als positiv behandeln.
** Das 'V' ist ein implizierter Dezimalpunkt. es existiert nicht in der Datei, aber COBOL weiß, dass es für das Runden und so da ist. Sie müssen dies programmatisch berücksichtigen. Es gibt nichts in der Datei, das Ihnen hilft zu identifizieren, wo es ist oder ob es überhaupt existiert.
Die anderen beiden Felder sind bereits ungerade, so dass sie im gepackten Zustand mit dem Vorzeichen in gleichmäßiger Länge gespeichert werden können.
Andere Fragen, bearbeiten Sie Ihre Frage oder Fragen in den Kommentaren und jemand wird versuchen, sie für Sie zu beantworten.