schatte
15-07-09, 12:11
Hallo Leute,
ich habe in einem ILE Cobol Programm (V4R5 - V5R4) eine PIC X(22) Variable, welche einen 22 stelligen numerischen Wert enthält z.B. "1231082301102028301229". Wenn ich diese alpha Variable nun eine PIC 9(22) Variable schiebe und mir anschließend den Wert der numerischen Variable anschaue, bekomme ich den Wert 0000082301102028301229. Es werden also anscheinend nur 17 Ziffern übernommen, obwohl es 22 sind.
Beispiel Cobol Code:
01 STRING-WRK PIC X(22).
01 ZAHL-WRK PIC 9(22).
*------------------------------------------
LINKAGE SECTION.
*------------------------------------------
*------------------------------------------
PROCEDURE DIVISION.
*------------------------------------------
STEUER SECTION.
ANFANG.
MOVE "1231082301102028301229" TO
STRING-WRK.
MOVE STRING-WRK TO ZAHL-WRK.
Mit RPG klappt das ganze:
D zeichen S 22
D numerisch S 22 0
C Eval zeichen = '1231082301102028301229'
C MOVE Zeichen numerisch
C Eval *INLR=*On
Wo liegt hier das Problem?
Gruß
Matthias
ich habe in einem ILE Cobol Programm (V4R5 - V5R4) eine PIC X(22) Variable, welche einen 22 stelligen numerischen Wert enthält z.B. "1231082301102028301229". Wenn ich diese alpha Variable nun eine PIC 9(22) Variable schiebe und mir anschließend den Wert der numerischen Variable anschaue, bekomme ich den Wert 0000082301102028301229. Es werden also anscheinend nur 17 Ziffern übernommen, obwohl es 22 sind.
Beispiel Cobol Code:
01 STRING-WRK PIC X(22).
01 ZAHL-WRK PIC 9(22).
*------------------------------------------
LINKAGE SECTION.
*------------------------------------------
*------------------------------------------
PROCEDURE DIVISION.
*------------------------------------------
STEUER SECTION.
ANFANG.
MOVE "1231082301102028301229" TO
STRING-WRK.
MOVE STRING-WRK TO ZAHL-WRK.
Mit RPG klappt das ganze:
D zeichen S 22
D numerisch S 22 0
C Eval zeichen = '1231082301102028301229'
C MOVE Zeichen numerisch
C Eval *INLR=*On
Wo liegt hier das Problem?
Gruß
Matthias