Dynamisches Lesen von COBOL Neudefinition mit C #

Ich erstelle ein C # -Programm, mit dem ein in COBOL geschriebenes IBM HOST-Copybook dynamisch gelesen und daraus eine SQL-Tabelle generiert werden kann. Sobald die Tabelle generiert ist, kann ich eine Datei in mein Programm hochladen und es liest, konvertiert von IMB-37 und fügt die Datei in diese SQL-Tabelle ein. Bisher kann ich fast alles verarbeiten, obwohl ich mit REDEFINES auf einige Probleme stoße.

Beispielsweise

           10   SOME-FIELD        PIC 9(3)      COMP-3.     SCRRB205
4117       10   SOME-OTHER-FIELD REDEFINES                  3041-17
4117              SOME-FIELD      PIC X(2).                 3041-17

Ich verstehe, dass die Neudefinierung in diesem Fall die Stelle des darüber liegenden Feldes einnimmt, obwohl ich nicht verstehe, wie der Compiler weiß, ob er die Neudefinierung verwenden soll oder nicht. Ich gehe davon aus, dass es in diesem Fall daran liegt, dass die erste Zahl eine Zahl ist, bei der die zweite ein Zeichen ist, obwohl sie im folgenden Beispiel alle Zeichen verwenden.

 05  STREET-ADDRESS.
       10  ADDRESS-LINE-1               PIC X(20).
       10  ADDRESS-LINE-2               PIC X(20).
   05  PO-BOX REDEFINES STREET-ADDRESS  PIC X(40). 

Ich habe versucht, die Neudefinitionen einfach zu ignorieren, da sie immer den gleichen Platz beanspruchen, aber in dem Fall, in dem das ursprüngliche Feld gepackt und das neu definierte nicht vorhanden ist, muss ich nicht wissen, wann das Feld entpackt werden soll.

Jede Hilfe dabei wäre erstaunlich, Jungs!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage