Professional Documents
Culture Documents
10
MANUEL DUTILISATION
HISTORIQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 STRUCTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Fichier macrocommande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Macrocommande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
6
6
6
2 IDENTIFICATEURS ET CHANES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Identificateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Chaines composes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Variables internes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Variables systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Paramtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
7
7
8
8
9
9
3 OPRATEURS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Concatnation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
10
10
4 INSTRUCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Commande autocommutateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 CTRLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 CALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7 FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8 WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9 GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11
12
13
14
15
16
17
18
19
06
990617
DLO/DNE
DNE/EMB/TEX
05
971016
DSL/OCBNB
DEV/TIPGS
01
9206
DSL/OCBNB
DEV/TIPGS
ED
DATE
APPROBATION
REDACTEUR
NOTE DE CHANGEMENT
LANGAGE MACROCOMMANDES
STATION DE TRAVAIL
TIMACWS
ED
CIT
06
3BW 28933 AAAA REAHB
38
1 / 38
4.10 EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.11 HALT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
20
5 BIBLIOTHQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 COMPARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 DELAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 EDITCRD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 CALCUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7 FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8 LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.9 NEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.10 PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.11 POS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.12 REM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.13 SINCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.14 SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.15 TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
22
22
23
24
25
26
27
28
29
30
30
31
32
33
34
ANNEXE B IDENTIFICATEURS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
ANNEXE C SYNTAXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
38
ED
CIT
06
3BW 28933 AAAA REAHB
38
2 / 38
ED
CIT
06
3BW 28933 AAAA REAHB
38
3 / 38
HISTORIQUE
06 du 990617
PREFACE
Ce document dcrit le langage de programmation des macrocommandes du Terminal Intelligent sur station de travail, au niveau syntaxe et smantique.
ED
CIT
06
3BW 28933 AAAA REAHB
38
4 / 38
1 STRUCTURE
1.1 Fichier macrocommande
Les macrocommandes sont dcrites dans des fichiers dextension MAC.
Exemple : EXEMPLE.MAC
Un fichier MAC est un fichier texte donc manipulable via un diteur de texte du commerce.
Un fichier MAC contient la description dune ou plusieurs macrocommandes.
Les fichiers macrocommandes respectent la syntaxe suivante :
Un caractre dchappement $ est rserv aux identificateurs du langage. Pour utiliser ce caractre en lui faisant perdre la notion dchappement, il faut le doubler.
1.2 Macrocommande
La description dune macrocommande dbute par la dclaration MACRO nomdelamacro et se termine par la dclaration ENDMACRO.
Le corps de la macrocommande est dcrit entre ces deux dclarations.
MACRO toto
ENDMACRO
MACRO titi
ENDMACRO
MACRO tutu
ENDMACRO
ED
CIT
06
3BW 28933 AAAA REAHB
38
5 / 38
Lorsquun fichier MAC contient la description dune seule macrocommande, les dclarations MACRO et/
ou ENDMACRO peuvent tre omises.
Une macrocommande est donc dfinie par le rpertoire DOS o se trouve le fichier, le nom de fichier o
est dcrite la macrocommande, suivi du nom de la macrocommande.
Exemple :
1.3 Corps
Un corps de macrocommande est constitu dune suite dinstructions et de commentaires.
1.4 Instructions
Une instruction est constitue dun identificateur dinstruction suivi dune ou plusieurs chanes de caractres. Lidentificateur dune instruction est le dlimiteur de fin de linstruction prcdente. La dclaration
ENDMACRO limite la dernire instruction.
Exemple :
MACRO beautemps
REM il fait beau
REM car il y a du soleil
ENDMACRO
1.5 Commentaires
O il est possible de mettre un caractre sparateur de mot, il est possible de mettre un commentaire.
La marque de dbut de commentaire est constitue des deux caractres :
/*.
*/.
Suite un dbut de commentaire tous les caractres sont ignors lexcution jusquau premier fin de
commentaire.
ED
CIT
06
3BW 28933 AAAA REAHB
38
6 / 38
2 IDENTIFICATEURS ET CHANES
2.1 Identificateurs
Un identificateur peut reprsenter une instruction, un paramtre, une variable, un label, une macro.
Seuls les 8 premiers caractres dun identificateur sont significatifs.
Les caractres utilisables dans un identificateur sont les lettres de A Z sans distinction minusculemajuscule, les chiffres de 0 9 et les caractres tir et soulign : , _.
La visibilit des identificateurs dfinis dans une macro est limite cette macrocommande.
Variable
Paramtre
Exemple : ND=$NOND$,UR=$11$;
Le contenu dune variable ou dun paramtre est substitu au symbole lors de lutilisation des chanes.
Le sparateur de mot dlimite les chanes. Une chane contenant des dlimiteurs de mot ou de ligne doit
tre limite par des doublecotes.
Exemple : Ceci est un exemple.
La chane indique une chane vide.
A titre dexemple, les contenus de deux chanes peuvent tre compars, une chane peut tre mise vers
le central, dite lcran ou dans un fichier.
2.3 Variables
Une macrocommande peut utiliser des variables contenant des chanes.
Une variable est dfinie par un identificateur, dbutant par un caractre dchappement et finissant soit
par un caractre dchappement soit par un sparateur de mot.
Exemple :
$nour$
$1essai $2essai
/* une variable */
/* deux variables */
ED
CIT
06
3BW 28933 AAAA REAHB
38
7 / 38
ERRORCOM :
ENDLIST :
Fin de liste.
RUNMODE :
Mode dexcution.
EXCEPTMAC :
ED
CIT
06
3BW 28933 AAAA REAHB
38
8 / 38
2.4 Paramtres
Les paramtres permettent lchange de donnes entre un appelant : utilisateur ou macrocommande et
la macrocommande appele.
A lintrieur dune macrocommande les paramtres sont traits comme des variables. La syntaxe dun
paramtre est conforme celle dune variable, cela prs que lidentificateur ne peut tre que numrique,
car il indique le numro dordre du paramtre lors de lappel.
Exemple : $3$ identifie le troisime paramtre.
Lors de lappel dune macrocommande, chaque paramtre est initialis, soit avec la chane correspondante si elle existe, soit avec la chane vide.
Lors du retour lappelant, le contenu des variables passes en paramtre dappel est initialis avec le
contenu des paramtres correspondants dans la macrocommande appele.
Exemple :
MACRO appelante /* MACRO appelante */
CALL messok Faitil beau ? $reponse$
REM $reponse$
/*affiche la rponse*/
ENDMACRO
/*appelante*/
MACRO messok
REM $1$
SET $2 = oui
ENDMACRO
Sortie :
Faitil beau ?
oui.
2.5 Label
Un point de branchement, accessible par linstruction GOTO, est dclar par un label. Un label est constitu de la dclaration LABEL suivi de lidentificateur de ce label.
Exemple :
MACRO uselabel
LABEL forever
REM.
/* affiche un . */
GOTO forever
/* boucle infinie */
LABEL neverdone
ENDMACRO
/* uselabel */
ED
CIT
06
3BW 28933 AAAA REAHB
38
9 / 38
3 OPRATEURS
3.1 Concatnation
La concatnation est implicite. Les chanes juxtaposes sont automatiquement concatnes.
Exemple :
MACRO concat
SET $baie$ = 10
SET $alveole = 3
REM La position est 25$baie$$alveole$
ENDMACRO /* concat */
Sortie : La position est 25103.
3.2 Comparaison
Il est possible de comparer deux chanes au moyen des deux oprateurs suivants :
Le rsultat dune comparaison est un boolen qui peut servir de condition dans une instruction de contrle
du squencement de lexcution.
Exemple :
MACRO egalite /* compare les 2 paramtres, affiche et rend le rsultat dans le 3me paramtre */
IF $1 == $2 THEN
REM les deux chanes sont identiques
SET $3 = vrai
ELSE
REM les deux chanes sont diffrentes
SET $3 = faux
ENDIF
ENDMACRO /* compare */
ED
CIT
06
3BW 28933 AAAA REAHB
38
10 / 38
4 INSTRUCTIONS
SET
: affectation
COM ou @
: envoi au central
CTRLD
CALL
EXE
IF
: excution conditionnelle
FOR
: excution itrative
WHILE
: boucle conditionnelle
GOTO
: branchement
EXIT
: retour lappelant
HALT
: fin de lexcution
4.1 SET
a)
Syntaxe
SET
b)
Var
Chane
Explication
SET affecte le contenu dune chane une variable.
Exemple :
MACRO exset
SET $A = cou
SET $1 = $A$$A$ a va ?
REM $1
ENDMACRO
c)
Affichage
coucou a va ?
ED
CIT
06
3BW 28933 AAAA REAHB
38
11 / 38
a)
Syntaxe
COM
Chane
Explication
COM envoie les chanes une une au central.
Le mode dchange est bas sur celui des systmes E10, cestdire que les caractres sont envoys un par un jusquau premier caractre : ou ; et que lmission ne reprend que suite une
demande du central.
La premire instruction COM provoque systmatiquement une rinitialisation de la liaison par envoi
dun caractre SOH (contrle A) avant tout change.
Les commentaires situs lintrieur dune commande sont mis vers le central.
Voir aussi CTRLD.
Exemple :
MACRO aboin
/* interrogation de labonn dont le numro de dsignation est fourni en paramtre 1 */
COM aboin : nd = $1$ ;
ENDMACRO
c)
Emission
ED
CIT
[SOH]
ABOIN :
ND = 12345678 ;
06
3BW 28933 AAAA REAHB
38
12 / 38
4.3 CTRLD
a)
Syntaxe
CTRLD
b)
Explication
CTRLD ferme le dialogue en cours et libre la liaison avec le central. Voir aussi COM.
Exemple :
MACRO aboin
/* interrogation dune liste dabonn */
@ aboin :
FOR $varne IN 1 2 3 4 DO
@ne = 123$varne$:
ENDO
CTRLD
ENDMACRO
c)
Emission
ED
CIT
[SOH]
ABOIN :
NE = 1231:
NE = 1232:
NE = 1233:
NE = 1234:
[CTRLD]
06
3BW 28933 AAAA REAHB
38
13 / 38
4.4 CALL
a)
Syntaxe
Fichier
Macro
CALL
Chane
.
b)
Macro
Explication
CALL appelle la macro dcrite dans le fichier initialisant ses paramtres avec les chanes.
Si la macro se trouve dans le mme fichier que la macro appelante le nom de fichier peut tre
omis.
Exemple :
MACRO factoriel
/* calcule la factorielle du paramtre 1; paramtre 2 = rsultat */
IF $1 == 1 THEN
SET $2 = 1
ELSE
EXE CALCUL $n1$ = $1 1 /* calcule n1
CALL factoriel $n1 $2
/* calcule factorielle(n1)
EXE CALCUL $2 = $1 * $2
/* calcule n*factorielle(n1)
ENDIF
ENDMACRO
MACRO principale
PAUSE $x Entrer un nombre:
CALL /u/macro/arithm.Factoriel $x $res
REM la factorielle de $x est $res.
*/
*/
*/
ENDMACRO
c)
Affichage
Entrer un nombre: 4
La factorielle de 4 est 24.
ED
CIT
06
3BW 28933 AAAA REAHB
38
14 / 38
4.5 EXE
a)
Syntaxe
EXE
b)
Fichier
Chane
Explication
EXE permet lappel des fonctions de la bibliothque non accessibles directement par mot cl.
Les chanes indiques sont passes en paramtres dappel de lEXE. Si cellesci sont des variables,
leurs contenus peuvent tre modifis par la fonction appele.
Le code retour dun EXE est soit VRAI: 0, soit FAUX: 1 soit autre: faute grave qui entrane laffichage
dun message et larrt de lexcution. Linstruction IF permet de tester le code retour.
Exemple :
MACRO exexe
SET $a = 5
SET $b = 3
EXE CALCUL $plus = $a + $b
REM $a + $b = $plus
ENDMACRO
c)
Affichage
5+3=8
ED
CIT
06
3BW 28933 AAAA REAHB
38
15 / 38
4.6 IF
Syntaxe
a)
IF
condition
ELSE
b)
instruction
THEN
instruction
ENDIF
Explication
IF permet dexcuter les instructions comprises entre le THEN et le ELSE si la condition est vraie
et les instructions suivant le ELSE sinon.
La condition est dfinie parmi :
une instruction EXE. Si le code retour de lexcutable est 0 la condition est vraie, sinon elle est
fausse.
Exemple :
MACRO exif
IF $a == $b THEN
REM galit
ELSE
REM diffrence
ENDIF
ED
CIT
06
3BW 28933 AAAA REAHB
38
16 / 38
4.7 FOR
a)
Syntaxe
FOR
variable
DO
b)
chane
IN
instructions
ENDO
Explication
FOR permet lexcution itrative du bloc dinstructions compris entre DO et ENDO et ceci avec la
variable prenant successivement la valeur de chacune des chanes.
Exemple :
MACRO exnd
FOR $nd IN 123 456 789 DO
@aboin : nd=$nd ;
ENDO
ENDMACRO
c)
Emission
[SOH]
ABOIN :
ND=123 ;
[SOH]
ABOIN :
ND=456 ;
[SOH]
ABOIN
ND=789 ;
ED
CIT
06
3BW 28933 AAAA REAHB
38
17 / 38
4.8 WHILE
a)
Syntaxe
WHILE
b)
condition
DO
instruction
ENDO
Explication
WHILE permet de rpter lexcution des instructions comprises entre le DO et le ENDO tant que
la condition est vraie.
La condition est dfinie parmi:
une instruction EXE, si le code retour de lexcutable est 0 la condition est vraie, sinon elle est
fausse.
Exemple :
MACRO exWhile
set $a =
WHILE $a <>
DO
set $a = $a$
ENDO
ENDMACRO
ED
CIT
06
3BW 28933 AAAA REAHB
38
18 / 38
4.9 GOTO
a)
Syntaxe
GOTO
b)
Etiquette
Explication
GOTO transfre lexcution de la macrocommande sur linstruction place immdiatement aprs
ltiquette mentionne.
Exemple :
MACRO exgoto
/* tant que ralis base de IF et GOTO */
LABEL boucle
IF $x <> aaaaa THEN
/* condition de fin */
SET $x = $x$a
REM $x
GOTO boucle
ENDIF
ENDMACRO /* exgoto */
c)
Affichage
a
aa
aaa
aaaa
ED
CIT
06
3BW 28933 AAAA REAHB
38
19 / 38
4.10 EXIT
a)
Syntaxe
EXIT
b)
Explication
EXIT, soit provoque le retour de la macrocommande la macrocommande appelante qui continue
alors de sexcuter, soit termine lexecution si EXIT est rencontr dans la macro de plus haut niveau.
EXIT permet donc de terminer une macrocommande avant lachvement complet de celleci par
rencontre de ENDMACRO.
Exemple :
MACRO exexit
|
IF $erreur == vrai THEN
EXIT /* sortie sur erreur */
ENDIF
|
ENDMACRO
4.11 HALT
a)
Syntaxe
HALT
b)
Explication
HALT provoque larrt de lexcution.
Exemple :
MACRO exhalt
PAUSE $rponse Voulezvous Continuer (C) ou Arrter (A) ?
IF $rponse == A THEN
HALT
/* abort du traitement */
ENDIF
ENDMACRO
c)
Affichage
Voulezvous Continuer (C) ou Arrter (A)
A
Fin de lexcution.
ED
CIT
06
3BW 28933 AAAA REAHB
38
20 / 38
5 BIBLIOTHQUE
5.1 COMPARE
a)
Syntaxe
EXE
COMPARE
chane 1
chane C
chane 2
Explication
COMPARE effectue la comparaison des deux entiers contenus dans les chanes 1 et 2. Linstruction
IF permet de tester le rsultat de la comparaison: VRAI ou FAUX.
Les comparaisons possibles sont :
gal
infrieur
suprieur
infrieur ou gal
suprieur ou gal
:=
:<
:>
: <=
: >=
Exemple :
MACRO excompare
SET $a = 7
SET $b = 00$a
/* b = 007 */
FOR $OP IN = < > <= >= DO
IF EXE COMPARE $a $op $b THEN
REM $a $op $b
ENDIF
ENDO
ENDMACRO
c)
Affichage
7 = 007
7 <= 007
7 >= 007
ED
CIT
06
3BW 28933 AAAA REAHB
38
21 / 38
5.2 DELAY
a)
Syntaxe
EXE
DELAY
chane
b)
Explication
DELAY suspend lexcution pendant une dure exprime en seconde dans la chane.
Exemple :
MACRO exdelay
EXE DELAY 60 /* attendre une minute avant de passer la suite */
ENDMACRO
5.3 DELETE
a)
Syntaxe
EXE
b)
DELETE
Var
Nbcar
Dbut
Explication
DELETE supprime de la chane origine, depuis lindice Dbut, Nbcar caractres.
Exemple :
MACRO exdelete
SET $liste = abcdefgh
EXE DELETE $liste 2 3
REM $liste
ENDMACRO
c)
Sortie
aefgh
ED
CIT
06
3BW 28933 AAAA REAHB
38
22 / 38
5.4 DOS
a)
Syntaxe
EXE
DOS
Command
Chane
Explication
DOS appelle linterprteur de commande UNIX en lui donnant excuter la commande Command
avec les paramtres chaine.
Exemple
MACRO exDOS
exec dos pwd
ENDMACRO :
c)
Affichage
/u/macro
ED
CIT
06
3BW 28933 AAAA REAHB
38
23 / 38
5.5 EDITCRD
a)
Syntaxe
EXE
b)
EDITCRD
Source
Destination
Explication
EDITCRD crit dans le mdia destination le fichier Source sil est nomm sinon le compte rendu
complet de la dernire commande envoye destination peut tre:
Un fichier:
Le compterendu sera ajout au fichier si celuici existe dj
Une imprimante:
Par exemple: /dev/lpvi0 ou /dev/printer
Lcran
Par dfaut
ED
CIT
06
3BW 28933 AAAA REAHB
38
24 / 38
5.6 CALCUL
a)
Syntaxe
EXE
CALCUL
Var
chane1
Op
chane
Explication
CALCUL affecte une variable le rsultat des oprations : addition, soustraction, multiplication, division, ou, et, entre plusieurs entiers, soit dcalage gauche ou droite du rsultat des oprations
prcdentes du nombre de positions indiques par lentier suivant.
Lvaluation est ralise de gauche droite sans notion de priorit.
Exemple :
MACRO excount
SET $a = 012
SET $4 = 3
FOR $op IN + x / DO
EXE CALCUL $x = $a $op $b
REM $A $op $b = $x
ENDO
EXE CALCUL $a = $x / $b
REM $x / $b = $a.
ENDMACRO
c)
Affichage
012 + 3 = 15
012 3 = 9
012 x 3 = 36
012 / 3 = 4
4/ 3= 1
ED
CIT
06
3BW 28933 AAAA REAHB
38
25 / 38
5.7 FIND
a)
Syntaxe
FIND
<
chane F
chane R
8 chanes maximum
b)
Explication
FIND teste la prsence des chanes de caractres : chane R, dans:
les messages reus de la classe ddition chane F si cette dernire contient un nombre compris
entre 0 et 31,
Exemple :
MACRO exfind
IF FIND < trace.txt erreur grave abort
THEN /* un traitement prcdent a mmoris dans le fichier TRACE
un problme majeur terminer lexcution */
HALT
ENDIF
IF FIND < 17 CSN $ur HS
THEN
/* alarme immdiate mise HS du CSN */
PAUSE $rep Le CSN $ur est tomb HS. Frapper OUI pour continuer
IF $rep <> OUI THEN EXIT /* rend la main */
ENDIF
ENDIF
@CSNCR : UR = $UR$, ;
IF FIND ressource indisponible
THEN
REM La commande CSNCR de lUR $UR$ sest mal passe
ENDIF
ENDMACRO
ED
CIT
06
3BW 28933 AAAA REAHB
38
26 / 38
5.8 LOAD
a)
Syntaxe
LOAD
b)
variable
chane
chane F
Explication
LOAD recherche toutes les occurences de chane soit dans le fichier de nom chane F sil est donn
en paramtre, soit dans le dernier compte rendu de commande reu.
La variable est charge avec largument associ la premire occurence de chane. Largument est
le mot qui suit le caractre = situ directement aprs la chane.
Les arguments correspondant chacune des occurences de chane sont aussi associs la variable. La fonction NEXT affecte squentiellement chaque argument la variable.
N.B.
Si la chane rechercher est vide la variable contient sucessivement chaque mot du fichier.
Si la chane nest pas trouve dans le fichier, LOAD initialise la variable vide et la variable systme ENDLIST prend la valeur ON, autrement elle est OFF.
Exemple :
MACRO exload
LOAD $A ND exemple.txt
REM nd : $A /* affiche la premire valeur de ND */
LOAD $A TYPE exemple.txt
REM type: $A /* affiche la premire valeur de TYPE */
ENDMACRO
c)
Affichage
Fichier exemple.txt : ABONNE TOTO ND = 12345678 .TYPE = KLA
nd : 12345678
type : KLA
d)
Remarque
ED
CIT
06
3BW 28933 AAAA REAHB
38
27 / 38
5.9 NEXT
a)
Syntaxe
NEXT
b)
variable
Explication
Une liste de chanes doit avoir t prcdemment associe la variable par la fonction LOAD.
NEXT affecte la variable la valeur de loccurence suivante de chaine F indiqu dans la fonction
LOAD.
Sil ny a pas de chane suivante disponible NEXT initialise la variable vide et positionne la variable
systme ENDLIST ON.
Exemple :
MACRO exnext
/*
recherche dans le millier dabonns fourni en paramtre dappel ceux ayant le type clavier
et suppression de ce type */
@ABOIL:ND=$1$000<$1$999, T1=KLA;
LOAD $nd ND
/* Liste des ND dans $nd */
LABEL BOUCLE
/* boucle pour suppression */
IF $ENDLIST == OFF THEN
/* test de fin */
@ABOMO:ND=$nd$,TYPE=/KLA; /* suppression */
NEXT $ND
/* passage au suivant */
GOTO BOUCLE
ENDMACRO
ED
CIT
06
3BW 28933 AAAA REAHB
38
28 / 38
5.10 PAUSE
a)
Syntaxe
PAUSE
b)
variable
chane
Explication
PAUSE affiche le message constitu des chanes passes en argument, puis il attend une entre
au clavier avant de passer linstruction suivante.
Si le premier argument est une variable, cette dernire est initialise avec la chane de caractres
entre au clavier.
N.B.
Exemple :
MACRO expause
PAUSE $x quelle heure estil
PAUSE Il est $x
PAUSE $x
ENDMACRO
ED
CIT
Affichage
Entre
10 : 34
06
3BW 28933 AAAA REAHB
38
29 / 38
5.11 POS
a)
Syntaxe
POS
EXE
b)
Chaine source
Souschaine
Variable
Explication
POS repre une souschane dans Chane source et rend la position de celleci dans Variable
Si la souschane est absente Variable est valorise 0
Exemple
MACRO ex_pos
SER $liste = abcdefgh
EXEC POS cde $liste $resultat
REM $resultat
ENDMACRO
c)
Sortie
3
5.12 REM
a)
Syntaxe
REM
b)
chane F
chane
Explication
Le message constitu des chanes passes en argument est mmoris la fin du fichier de nom
chane F si > est le premier paramtre, sinon il est affich lcran.
Exemple :
MACRO exrem
SET $A = 01234
SET $B = 56789
REM les caractres $A$$B$ sont des chiffres
REM > RESULTAT.TXT les caractres A Z sont des lettres.
ENDMACRO
c)
Affichage
Les caractres 0123456789 sont des chiffres.
ED
CIT
06
3BW 28933 AAAA REAHB
38
30 / 38
5.13 SINCE
a)
Syntaxe
Dlai
SINCE
EXE
Rfrence
> Ecoul
Ecoul
b)
Explication
Suivant la syntaxe employe SINCE ralise les fonctions suivantes:
Mettre dans une variable Ecoul le temps coul depuis la date Rfrence.
ED
CIT
06
3BW 28933 AAAA REAHB
38
31 / 38
5.14 SPLIT
a)
Syntaxe
EXE
SPLIT
Origine
Dlimiteur
Destination
Explication
SPLIT dcoupe la chane origine et initialise la premire variable destination avec la portion de chane prcdant le premier caractre dlimiteur; la deuxime variable destination avec la portion comprise entre le premier et le deuxime dlimiteur et ainsi de suite.
Si le nombre de variables destination est infrieur au nombre de dlimiteurs dclars en paramtres
le code retour est initialis 1.
Si le nombre de variables destination est suprieur au nombre n de dlimiteurs trouvs dans la chane origine, la variable de rang n+1 contient la zone comprise entre le dernier dlimiteur et la fin de
la chane, les variables suivantes sont vides.
Exemple :
MACRO exsplit
SET $liste = 123+567+91011
SPLIT $liste +++++++ $a $b $c $d $e $f $g $h
FOR $x IN $a $b $c $d $e $f $g $h DO
IF $x <> THEN
EXE SPLIT $x $xs $xt $xb /* dcoupe des segments */
@XXXCR:
/* envoi de la commande */
SALLE=$xs$, TRAVEE=$xt$, BAIE=$xb$;
ENDIF
ENDO
ENDMACRO
c)
Emission
ED
CIT
06
3BW 28933 AAAA REAHB
38
32 / 38
5.15 TIME
a)
Syntaxe
EXE
b)
TIME
variable
Explication
TIME affecte la variable lheure interne code sous la forme HHMMSS.
Exemple :
MACRO test_time
/*
Teste si lheure passe en paramtre 1 est dpasse par lheure interne.
Rend APRES si cest le cas, AVANT sinon dans le paramtre 2.
Le paramtre 1 est de la forme HHMM */
ED
CIT
06
3BW 28933 AAAA REAHB
38
33 / 38
CONTINU
JUMP
GETOUT
EXCEPTMAC
EXCEPTMAC dfinit la macrocommande excuter en cas de mauvaise excution dune commande autocommutateur : NEX, REF...
RUNMODE : STEP/AUTO/*
RUNMODE dfinit le mode dexcution : automatique ou pas pas. Pas pas signifie que loprateur doit
relancer lexcution chaque instruction en agissant sur le clavier.
STEP
AUTO
ED
CIT
06
3BW 28933 AAAA REAHB
38
34 / 38
ANNEXE B IDENTIFICATEURS
IDENTIFICATEURS RESERVES :
ED
CIT
CALL
FIND
MACRO
DO
FOR
NEXT
ELSE
GOTO
PAUSE
ENDIF
HALT
REM
ENDMACRO IF
SET
ENDO
IN
THEN
EXE
LABEL
@
EXIT
LOAD
CTRLD
WHILE
COM
06
38
35 / 38
ANNEXE C SYNTAXE
INSTRUCTIONS :
CALL
Fichier.Macro
.Macro
Fichier
<
classe ddition
ED
CIT
message
06
3BW 28933 AAAA REAHB
38
36 / 38
=
>
<
>=
<=
*
/
SHL
SHR
AND
OR
entier 2 ...
entier 2
ED
CIT
06
3BW 28933 AAAA REAHB
38
37 / 38
LOAD:
NEXT:
PAUSE:
REM
EXE COMPARE:
Comparaison dentiers
EXE DELAY
Attente
EXE DELETE:
EXE DOS
Interface DOS
EXE EDITCRD
EXE POS
EXE SINCE
Gestion du temps
EXE SPLIT:
Dcoupage de chanes
EXE TIME
Rcupration de lheure
EXE UPCASE
FIN DE DOCUMENT
ED
CIT
06
3BW 28933 AAAA REAHB
38
38 / 38