[COBOL] Clause RENAMES

Clause RENAMES [COBOL] - Divers - Programmation

Marsh Posté le 03-01-2009 à 00:41:27    

Bonjour,  
 
Tout d'abord, désolé de poster dans la catégorie "Divers" mais je pense qu'il n'en existe pas (plus?) pour le Cobol.
 
Voilà, j'ai une petite question pas bien méchante à propos de la clause RENAMES :  
 
Lorsque je fais ceci :  
 

01 Num-Compte
  02 id-banque PIC XXX
  02 Num-compte PIC XXXXXXX
  02 Verification PIC XX
66 id-compte RENAMES id-banque THRU Num-compte


 
Est-ce que cela reviendrait au même que faire de faire en gros (en C) :  
 

strcpy(buf, id-banque);
strcpy(id-compte, (strcat(buf, Num-compte));


 
Donc, est-ce que au final id-compte sera égal à une chaine comprenant id-banque + Num-compte ? Et si oui, dans quel ordre?
 
Je sais que je pourrais simplement le compiler pour tester mais j'étudie ça pour mes examens et je ne rentrerai pas chez moi avant celui-ci donc, pas possible de tester sur un compilateur.
 
Merci d'avance! ;)

Reply

Marsh Posté le 03-01-2009 à 00:41:27   

Reply

Marsh Posté le 03-01-2009 à 01:17:50    

Ca sera sans doute plus clair avec ça : http://books.google.be/books?id=4_ [...] &ct=result


---------------
Instagram - Mon PVT en Australie.
Reply

Marsh Posté le 03-01-2009 à 01:25:23    

Merci beaucoup, le lien que tu m'as donné a l'air très complet.  
Je vais lire ça attentivement!
 
Par contre, étrangement, ce qui est dit dans mon cours sur cette fameuse clause n'a pas grand chose à voir avec ce qu'il est mis dans ce lien... J'y verrai plus clair demain à tête reposée, encore merci. ;)

Reply

Marsh Posté le 03-01-2009 à 13:05:02    

Voici quelques explications puisque j'ai programmé un compilateur Cobol et puisque le lien renvoie :
"Page à accès restreint. Vous avez dépassé le nombre de pages que vous êtes autorisé à consulter pour ce livre."
 

Citation :

Est-ce que cela reviendrait au même que faire de faire en gros (en C) :  
strcpy(buf, id-banque);  
strcpy(id-compte, (strcat(buf, Num-compte));

Oui, en gros. Non, en détail, car il n'y a aucun mouvement derrière RENAMES. Ce n'est pas une instruction qui s'exécuterait lors du déroulement du programme, mais une instruction pour le compilateur uniquement. Il n'y a pas de buffer interne temporaire, car RENAMES n'est qu'une autre manière de nommer la plage d'octets réservés pour id-banque et Num-compte. En C, l'équivalent du RENAMES est union qui est une instruction peu utilisée.
 

Citation :

est-ce que au final id-compte sera égal à une chaine comprenant id-banque + Num-compte ?

Oui.
 

Citation :

dans quel ordre?

RENAMES ne change pas l'ordre. Donc l'ordre sera id-banque puis Num-compte.

Reply

Marsh Posté le 03-01-2009 à 13:13:32    

Génial, merci pour la clarté et l'efficacité de ta réponse!
 
Tu as programmé un compilateur Cobol?  :pt1cable:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed