Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : Assembleur - une commande ReadArgs
(Article écrit par Frédéric Delacroix et extrait d'Amiga News - mars 1997)
|
|
La plupart des programmeurs connaissent la fonction ReadArgs() de la dos.library dont le
rôle est d'analyser une ligne d'arguments donnée à un programme. Je vous propose aujourd'hui
une commande permettant ce genre de chose depuis l'intérieur d'un scénario AmigaDOS. Cela pourra également se révéler utile
pour les programmes ARexx.
Le principe
Je ne m'étalerai pas ici sur le fonctionnement de la fonction ReadArgs() car je
n'ai pas la place. Je me concentrerai essentiellement sur l'algorithme du programme.
Il utilise une première fois la fonction ReadArgs() afin de déterminer ses propres arguments. Ce sont respectivement
un modèle pour la fonction ReadArgs(), éventuellement la chaîne à confronter à ce modèle, un texte d'aide supplémentaire
(optionnel, il apparaît lorsqu'on tape un second point d'interrogation) et un interrupteur qui détermine si l'on doit utiliser
les variables d'environnement (stockées dans ENV:. accessibles à tous les processus par setenv et getenv) ou locales
(spécifiques au processus qui les crée, accessibles par get et set).
Le programme appelle ensuite une deuxième fois ReadArgs() avec le modèle qui lui a été fourni en paramètre. Si une
valeur a été donnée pour STRING, elle est utilisée (à noter qu'elle doit se terminer par un caractère line-feed : mettez-là
entre guillemets et la faire finir par °n, si vous devez utiliser des guillemets dedans, utilisez *"). Sinon le programme demande
une ligne de commande depuis la console d'entrée.
Les résultats sont stockés dans des variables d'environnement ou locales (par défaut). Le nom de ces variables est celui
qui a été assigné aux champs du modèle. Cela nécessite un peu de traitement de caractères dans le programme, un peu
technique mais rien d'extrême.
Voilà, je vous laisse potasser le listage qui suit, que j'espère vous trouverez suffisamment commenté.
|