Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina MicroFocus (https://www.cobolforo.es/forumdisplay.php?f=48)
-   -   Tablas bidimensionales de longitud variable (https://www.cobolforo.es/showthread.php?t=150)

Kuk 4 de junio de 2015 21:17

Tablas bidimensionales de longitud variable
 
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:

Código:

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

Código COBOL:
  1.      LINKAGE SECTION.
  2.  
  3.        01  LINK-AREA.
  4.            10  LNK-DATO1     PIC X(4).
  5.            10  LNK-LONG      PIC 99.
  6.            10  LNK-OCCURS    PIC 9999.
  7.            10  LNK-REGISTRO OCCURS 1 TO 9999 DEPENDING ON LNK-OCCURS.
  8.                15  FILLER OCCURS  40 TO   50 DEPENDING ON LNK-LONG.
  9.                    20 FILLER PIC X.
  10.  
  11.            10  LNK-COD-RET   PIC XX.
  12.            10  LNK-FS        PIC XX.
  13.  
  14.        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.


La franja horaria es GMT +2. Ahora son las 14:04.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.