View Full Version : Cobol: Move A-Feld to B-Feld (3:5) ??
habe leider nichts in den Doku's gefunden!
A-Feld p(5) Value 12345
B-Feld x(10)
ich kann
Move A-Feld (1:3) to B-Feld --> (123 )
aber kann ich auch
Move A-Feld to B-Feld (3:5) --> ( 12345 )
oder sogar
Move A-Feld (1:3) to B-Feld (3:3) --> ( 123 )
Danke!
Alles ist möglich.
Durch die Dereferenzierung wird intern ein Redefine auf das Feld durchgeführt und der Move dann ausgeführt.
Du kannst auch Variablen statt Konstanten verwenden, Indexfehler nicht ausgeschlossen.
Die Startposition und Längenangabe sind anscheinend Teil des Bezeichners (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c092539567.htm#HDRIDENTFR) selbst.
Das ist so nicht korrekt.
Die Dereferenzierung in COBOL entspricht dem %subst() in RPGLE.
"%SUBST(MyVar: MyPos: MyLen)" kann sowohl links als auch rechts der Zuweisung stehen.
In COBOL gibt es %SUBST erst gar nicht, das kann dann per "MyVar(MyPos: MyLen)" direkt verwendet werden.
Dies entspricht im Übrigen einer direkten MI-Übersetzung.
Wenn man "Identifier" als "Bezeichner" übersetzt, dann stimmt's doch: Im Kapitel "Identifier" der ILE COBOL Sprachreferenz (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c092539567.htm#HDRIDENTFR) ist beschrieben, wie sich ein "Identifier" zusammensetzt und da steht das mit der Startposition und der Längenangabe.