Anmelden

View Full Version : warum Minus ?/ war das schon immer so?



Robi
31-07-13, 11:05
Hi *all

habe gesten aus einem komplexen RPG Pgm ein ILE konvertiert.

Dort wird folgendes ausgeführt

C MOVEL INHACD RRGMIN 15 2


inhacd ist ein 60 stelliges Alpa Feld aus einer 'hier ist alles drin, was keine eigene Datei rechtfertigt' -Datei.
In inhacd steht '000000000002300 9999999999 ...'


EVAL inhacd:x
00000 F0F0F0F0 F0F0F0F0 F0F0F0F2 F3F0F040 - 000000000002300
00010 F9F9F9F9 F9F9F9F9 F9F9F9F9 F9F9F940 - 999999999999999
00020 4040C5E4 D940D489 95844B60 C7859960 - EUR Mind.-Ger-
00030 D2964093 A34B40C2 D9C1C7D6 ........ - Ko lt. Bxxxx....


Im ILE steht nach dem movel -23 in dem RRGMIN

Wieso plötzlich minus???
könnt Ihr das nachstellen? V7R1, TR 5

PS: Ja, ich weis wie ich das löse, aber diese Technik war früher halt so und ich kann mich nicht an Probleme nach ILE-Konvertierung erinnern.


Ergänzung: Im selben PGM wird auf die selbe Art auch ein 4/2 und ein 5/2 Feld gefüllt.
Die sind NICHT minus!

Robi
31-07-13, 12:26
also ...

im INHACD steht
"000000000002300 999999999999999 ... O' <- = oh!

O ist hex D6
Wenn an der letzten Stelle im String ein Zeichen steht, das Hex Dx ist, wird die Zahl, egal wie groß negativ

Werde IBM mal fragen ob das OK ist!

Robi

Oh, sch.... falsches Forum, hmm, wohl nicht mein Tag heute ...sorry

Fuerchau
31-07-13, 14:01
Ich glaube, das war auch schon in RPG so.
Der Movel extrahiert die rechte Tetrade in der Anzahl benötigter Stellen und nimmt das vorzeichen grundsätzlich aus der linken Tetrade des rechtesten Zeichens.
Einen MCH gibt es nur, wenn eben keine Zeichen zwischen 0-9 bzw. für das Vorzeichen dann D/F vorhanden sind.

Daher wird dann aus "ABCDO" eben x'12346D'.

Für das falsche Forum sehe ich mal drüber weg:).

Robi
31-07-13, 14:20
Für das falsche Forum sehe ich mal drüber weg.
Danke:)


Ich glaube, das war auch schon in RPG so.

nö, dann würde mein als Basis verwendetes pgm seit 20 jahren falsch laufen !!
Robi