-
Cobol: Alpha Feld in Numerisch
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:
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:
Code:
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
-
Hallo,
lt. Handbuch kann Cobol in einem numerischen Feld 18 Stellen verarbeiten.
Gruss
akorb
-
Läßt sich das Programm so wirklich wandeln? Ich erhalte hier die Nachricht LSC1210 im SEU und LBL1210 beim Wandeln.
DSPMSGD RANGE(LSC1210) MSGF(QDEVTOOLS/QLSCMSG)
DSPMSGD RANGE(LBL1210) MSGF(QDEVTOOLS/QLBLMSG)
LBL1210:
Nachricht . . . : PICTURE-Zeichenfolge überschreitet maximal zulässige Länge von 18 Ziffern. Klausel PICTURE ignoriert.
Fehlerbeseitigung: Die Klausel PICTURE darf - einschließlich der für das Zeichen P und für gleitende Einfügungszeichen reservierten Ziffernpositionen - eine Länge von 18 Ziffern nicht überschreiten.
-
Gib beim Umwandeln die Option
CRTBNDCBL ... ARITHMETIC(*EXTEND31)
an, dann müssste es klappen.
Laut ANSI darf COBOL nur 18 signifikante Ziffern verarbeiten.
-
Achso. Als ILE COBOL läßt es sich wandeln.
Und so klappt das auch 22stellig:
01 STRING-WRK PIC X(22).
01 ZAHL-WRK-R REDEFINES STRING-WRK.
05 ZAHL-WRK-2 PIC 9(22).
-
Zitat von Fuerchau
Gib beim Umwandeln die Option
CRTBNDCBL ... ARITHMETIC(*EXTEND31)
an, dann müssste es klappen.
Laut ANSI darf COBOL nur 18 signifikante Ziffern verarbeiten.
Mit ARITHMETIC(*EXTEND31) hat es geklappt.
Danke.
Similar Threads
-
By llschuh in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 18-03-13, 06:11
-
By chrhe in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 01-11-06, 14:55
-
By labm in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 23-03-06, 11:17
-
By Tobse77 in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 23-06-05, 10:20
-
By Tobse77 in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 22-06-05, 09:02
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks