Une nouvelle version d'EMME/2 ne va pas sans introduire des améliorations au langage de commandes macros. Voici une liste des nouvelles caractéristiques offertes dans la version 9:
%tp% | titre du projet |
%ts% | titre du scénario courant |
%tl% | unité de longueur (max. 2 caractères) |
%tc% | unité de coût (max. 4 caractères) |
%te% | unité d'énergie (max. 4 caractères) |
%tu% | initiales de l'utilisateur telles que spécifiées en début de session |
%m
TN.n%
et %m
TN.d%
, où
T est le type de matrice (f
, o
, d
ou s
)
et N est le numéro de la matrice.
De plus, la nouvelle substitution %m
TN.t%
permet
d'obtenir l'horodate d'une matrice.~#
... permet d'insérer des
commentaires dans les macros.
Contrairement aux commandes déjà existantes ~/
... et ~~/
...,
ces commentaires ne sont pas copiés au terminal mais ne servent qu'à documenter
le programme macro en soi (ils ne seront affichés que lors de l'édition
de la macro ou lorsque la macro est exécutée en mode de mise au point).~>>filename
...
est une variante de la commande de sauvegarde dans un fichier ~>
.
Cette commande permet d'ajouter des lignes à un fichier déjà existant.
Alors que la commande ~>
provoquera une erreur si le fichier spécifié
existe déjà, le nouvelle commande ~>>
fonctionne, que le fichier existe
ou non. S'il n'existe pas, la commande ~>>
est parfaitement équivalente
à la commande ~>
. Si le fichier existe, il est ouvert et positionné à
la fin, de telle sorte que les commandes subséquentes sont ajoutées au
contenu existant.
Cette nouvelle commande est utile non seulement lors de la création
interactive de macros, mais aussi lorsqu'utilisée à l'intérieur d'une macro.
En effet, lorsque combinée à une autre nouvelle commande (~"
)
décrite ci-après, il est possible de créer des fichiers contenant
n'importe quel texte.~"
... n'a aucun effet immédiat sur l'exécution d'une macro, mais,
lorsqu'elle est utilisée alors qu'une
commande de sauvegarde (~>
fichier ...)
ou d'ajout (~>>
fichier ...) est active, tous les caractères
suivant le ~"
sont copiés au fichier ouvert à l'aide du ~>
ou du ~>>
.
L'utilisation combinée du ~"
et du ~>
(ou du ~>>
)
permet donc de créer un fichier de texte de l'intérieur même d'une macro,
offrant ainsi une façon indépendante de tout système d'exploitation
de créer des fichiers externes et évitant par le fait même les problèmes
potentiels reliés à l'utilisation de commandes telles ~!echo
....~<<
fichier et de lecture d'enregistrement ~@
fournissent aux macros un moyen de lire et de traiter des fichiers de texte.
Une fois un fichier ouvert à l'aide de la commande ~<<
fichier,
il reste ouvert jusqu'à ce qu'une des conditions suivantes soit remplie:
~<<
)~<<
La nouvelle commande de lecture d'enregistrement ~@
lit la prochaine ligne dans le dernier fichier ouvert.
La commande ~@
est semblable à la commande de lecture au terminal
~*
. Elle peut être exécutée seule quand la ligne lue est traitée
comme une commande macro ou une commande EMME/2, ou combinée à une commande
d'initialisation de registre texte.
Par exemple, la commande ~t5=~@
lira la prochaine ligne et
en sauvegardera le contenu dans le registre de texte t5
.
Mentionnons que chaque niveau d'appel de macros peut ouvrir en lecture un fichier qui lui est propre. Comme c'est déjà le cas pour les valeurs associées aux registres, lorsqu'une macro appelle une autre macro, le fichier ouvert en lecture devient aussi connu de la macro appelée.
%
..._
W%
) sont cadrées à gauche pour les
registres de type texte et cadrées à droite pour les registres numériques.
Avec la version 9, il est possible de changer de comportement par défaut
et de forcer un cadrage à droite ou à gauche pour toute substitution.
Ceci se fait en insérant le caractère >
(pour cadrage à droite)
ou <
(pour cadrage à gauche) juste avant la valeur W
précisant la largeur du champ. Par exemple, la substitution %t5_>32%
écrit le contenu du registre t5
dans un champ de 32 caractères
avec cadrage à droite.