Iniciar Sesión

Ver la Versión Completa : Tablas bidimensionales de longitud variable


Kuk
4 de junio de 2015, 21:17
Como se sabe, el COBOL no gestiona la memoria de manera dinámica. Es decir, aunque definamos el DEPENDING ON, en realidad siempre reserva el máximo que indicamos en el TO n TIMES. Ademas, no podemos meter varios DEPENDING ON anidados, ya que el direccionamiento de la memoria no es dinámico.

Pero, el compilador NetExpress de MicroFocus lo permite. Para ello debemos añadir una directiva en la cabeza:

$SET ODOSLIDE

El resultado de añadira nos permite tener tablas con DEPENDING ON anidados:


LINKAGE SECTION.

01 LINK-AREA.
10 LNK-DATO1 PIC X(4).
10 LNK-LONG PIC 99.
10 LNK-OCCURS PIC 9999.
10 LNK-REGISTRO OCCURS 1 TO 9999 DEPENDING ON LNK-OCCURS.
15 FILLER OCCURS 40 TO 50 DEPENDING ON LNK-LONG.
20 FILLER PIC X.

10 LNK-COD-RET PIC XX.
10 LNK-FS PIC XX.

PROCEDURE DIVISION USING LINK-AREA.

GabrielACE
22 de mayo de 2018, 20:41
y lo dinamico donde esta?

no lo entiendo :-(

Kuk
23 de mayo de 2018, 11:13
GabrielACE, no se trata de dinámico. Se trata de poder meter varios DEPENDING ON anidados. Viene a ser "pseudo-dinámico". Mira bien el código y verás que el campo padre LNK-REGISTRO que depende de un indice contiene un FILLER hijo que a su vez depende de otro indice.