Leer dinámicamente COBOL redefine con C #

Estoy creando un programa C # que podrá leer dinámicamente un cuaderno de IBM HOST escrito en COBOL y generar una tabla SQL a partir de él. Una vez que se genera la tabla, puedo cargar un archivo en mi programa y leerá, se convertirá desde IMB-37 e insertará el archivo en esa tabla sql. Hasta ahora puedo manejar casi cualquier cosa, aunque me encuentro con algunos problemas con REDEFINES.

Por ejemplo:

           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

Entiendo que la redefinición toma el lugar del campo superior en este caso, aunque lo que no entiendo es cómo el compilador sabe si debe usar la redefinición en ella o no. Supongo que en este caso será porque el primero es un número donde el segundo es un personaje, aunque en el ejemplo a continuación todos usan caracteres.

 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). 

He intentado ignorar las redefiniciones, ya que siempre ocupará la misma cantidad de espacio, pero en el caso de que el campo original esté empaquetado y el redefinido no sea necesario, necesito saber cuándo desempaquetar el campo.

¡Cualquier ayuda con esto sería increíble chicos!

Respuestas a la pregunta(2)

Su respuesta a la pregunta