Instruction With
L'instruction with est utilisée pour minimiser l'écriture lors de l'accès aux variables d'enregistrement. Dans de nombreux cas, cela permet également au compilateur de générer des codes machine plus efficaces. Cependant, toute instruction with peut être convertie en instructions équivalentes sans with.
La forme générale de l'instruction with est:
Dans l'instruction, les champs des variables d'enregistrement sont accessibles directement sans spécifier la variable d'enregistrement respective.with Recordvariable1, Recordvariable2, ... do Instruction;
Exemples:
signifie la même chose que:with datum do if mois = 12 then begin mois := 1; annee := annee + 1; end else mois := mois + 1;
et:if datum.mois = 12 then begin datum.mois := 1; datum.annee := datum.annee + 1; end else datum.mois := datum.mois + 1;
est synonyme de:with dir[i]^ do { Table des matières de sortie } writeln(name : 12, size : 9);
Si plusieurs instructions doivent être exécutées, elles doivent être incluses dans une instruction de bloc (begin - end).writeln(dir[i]^.name : 12, dir[i]^.size : 9);