Динамическое чтение COBOL переопределяет с помощью C #
Я делаю программу на C #, которая будет в состоянии динамически читать тетрадь IBM HOST, написанную на языке COBOL, и генерировать из нее таблицу SQL. После того, как таблица сгенерирована, я могу загрузить файл в свою программу, и он будет читать, конвертировать из IMB-37 и вставлять файл в эту таблицу SQL. Пока что я могу справиться почти с чем угодно, хотя у меня возникают проблемы с REDEFINES.
Например:
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
Я понимаю, что переопределение занимает место поля над ним в этом случае, хотя я не понимаю, как компилятор знает, должен ли он использовать переопределение на нем или нет. Я предполагаю, что в этом случае это будет потому, что первый - это число, а второй - символ, хотя в приведенном ниже примере все они используют символы.
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).
Я попытался просто игнорировать переопределения, так как они всегда будут занимать одинаковое количество места, но в случае, когда оригинальное поле упаковано, а переопределенное не мне, мне нужно знать, когда распаковывать поле.
Любая помощь с этим была бы удивительной парней!