Dire que j'ai la table de longueur variable suivante définie dans WORKING-STORAGE
...Répartition de la mémoire dans les tableaux de longueur variable
01 SOAP-RECORD.
05 SOAP-INPUT PIC X(8) VALUE SPACES.
05 SOAP-STATUS PIC 9 VALUE ZERO.
05 SOAP-MESSAGE PIC X(50) VALUE SPACES.
05 SOAP-ITEMS OCCURS 0 TO 500 TIMES
DEPENDING ON ITEM-COUNT
INDEXED BY ITEM-X.
10 SI-SUB-ITEMS OCCURS 0 TO 100 TIMES
DEPENDING ON SUB-COUNT
INDEXED BY SUB-X.
15 SS-KEY PIC X(8) VALUE SPACES.
15 SS-AMOUNT PIC -9(7).99 VALUE ZEROS.
15 SS-DESCR PIC x(100) VALUE SPACES.
Lorsque ce programme est exécuté, il va allouer un premier temps autant d'espace que ce tableau pourrait peut-être besoin, ou est-ce plus dynamique sur l'allocation de la mémoire? Je suppose que la clause DEPENDING ON
le rendrait plus dynamique dans le sens où il allouerait plus de mémoire car la variable ITEM-COUNT
est incrémentée. Un collègue me dit le contraire, mais il n'est pas sûr à 100%. Donc, j'aimerais vraiment savoir comment cela fonctionne afin de structurer mon programme aussi efficacement que possible. PS: Oui, je am écrit un nouveau programme COBOL! C'est en fait un service web CICS. Je ne pense pas que ce langage mourra jamais :(
Bonne réponse ... Une quantité de mémoire suffisante est allouée pour s'adapter à la taille maximale du tableau.La variable DEPENDING ON ne définit que le nombre d'éléments utilisés. Les ODO sont utiles lorsque vous utilisez SEARCH/SEARCH ALL sur des tables de taille variable et d'autres fonctions COBOL. Une discussion complète sur le moment et la raison d'utiliser les ODO serait longue. Mais - il n'y a rien de "dynamique" à propos de l'allocation de mémoire ici. – NealB
Merci pour le commentaire, NealB. Eh bien, je suppose que «EN FONCTION DE» n'est pas une phrase très utile dans COBOL. J'accepte cette réponse, merci Bruce! –