cacalog « OpenCatalog('sys/dos.catalog', 'engli sh', 0)
IF catalog • 0 THEN DO
/* Trouve la chalne correspondant au numóro de l'erreur.
copie en RAM Retour a ARexx
Oui mais voila, ARexx ne peut pas utiliser n'importe quelle bibliotheque partagee. En 1'occurence, pour etre compatible avec ARexx, une bibliotheque doit avoir śte ecrite specialement dans ce but, ce qui n'est pas le cas de celles de la ROM A ma connaissance, seules trois bibliotheques standards de 1'Amiga (c'est-a-dire, distribuees avec le Workbench) sont utilisables depuis ARexx : 1'amigaguide.library, la locale.library et la datatypes.library. Et encore, la locale.library n'est disponible que depuis le Workbench 2.1, et la datatypes.library, depuis le Workbench 3.0. II faut ajouter a cette petite listę la rexxsupport.library, qui, elle, est distri-buee avec ARexx lui-meme, et de nom-breuses autres bibliotheques provenant du domaine public. Rassurez-vous, il y a de quoi faire.
Sesame, ouvre toi
Avant que d'utiliser une bibliotheque de fonctions, un script ARexx doit s'assurer qu'elle est disponible. On utilise pour ce faire et en generał les quelques lignes suivantes :
( voir listing 1)
Comme d'habitude, les commandes et fonctions internes a ARexx sont ecrites en majus-cules, afin de les diffśrencier des externes.
- La fonction "SHOW" verifie Si la biblio-theque est deja chargee en RAM ou non. Le premier parametre, 'L', indique qu'on recherche une bibliotheque (pensez a "libra-ry"). Le second parametre est le nom de la bibliotheque recherchee.
- Si celle-ci n'est pas deja en RAM, on utilise la fonction "ADDLIB", qui s'occupe de la rendre disponible. Le premier parametre est bien sur le nom de la bibliotheque. Le second indique sa priorite. II n'y a aucune raison de spścifier autre chose que 0. Le troi-sieme parametre est le numero de la fonction contenant le serveur ARexx. Dans 99,99% des cas, ce sera -30. Seule la docu-mentation de la bibliotheque peut vous dire s'il faut employer une autre valeur. Un qua-trieme parametre optionnel indique le numero de version demande : il est en effet possible qu'une fonction ne soit implemen-tee dans une bibliotheque qu'a partir d'une version specifique ; si l'on compte utiliser une telle fonction, il faut indiquer a "ADDLIB" que toute version inferieure de la bib-bliotheque est a rejeter. Si comme ici, ce parametre n'est pas specifie, ou s'il vaut 0, on accepte n'importe quelle version.
- Si "ADDLIB" echoue pour une raison quel-conque, on utilise "SAY" pour en informer 1'utilisateur du script et on s'arrete la grace a "EXIT".
Remarquez que "ADDLIB" n'ouvre pas la bibliotheque immediatement : elle ne fait que signaler a 1'interpreteur RexxMast que le script utilisera cette bibliotheque. Celle-ci ne sera effectivement ouverte et chargee en memoire RAM que si au cours de 1'interpre-tation du script, une commande ou fonction inconnue est ren- —''
contree. Au fait,
une question : %
comment connait-on les noms des fonctions d'une
bibliotheque et les 4
parametres a leur
transmettre ? La c O r>, ,
D v i RU
reponse est aussi / »
N° I
simple que categorique : dans la documen-tation de la dite bibliotheque, et unique-ment la.
Petit exemple
Le petit script qui suit utilise la locale.library pour afficher le texte correspondant a un numero d'erreur renvoye par le Shell, je sais, c'est parfaitement inutile, etant donnę que la commande "Fault" existe deja, mais cela demontre la maniere d'utiliser les biblio-theques externes de fonctions. Le mois pro-chain, retour a un vrai script, qui justement utilisera une bibliotheque externe. D'ou le petit detour de ce mois-ci. En attendant, je vous salue bien bas.
Franęois Bellet-Toitois ttOCHGtfe
uouuei
'AT/ON
*'tou ftt/r m oe
=ĘM/c/?o
53, RU e de l1 O u est 75014 PARIS Metro Gaite ou Pernety
Ouveri le lundi de 14h a 19h et du mardi au samedi JOh a 19h.
GetCatalogStr () est dans la loca
le.library
defaut = 'Erreur numśro erreur
texte GetCatalogStr(ca ta log
erreur, defaut)
/* Affiche le resultat */
IF texte ■ defaut THEN SAY texte ELSE SAY 'Faute 'erreur': 'texte Referme le catalogue du Shell * CloseCatalog() est dans la locale.library */
CALL CloseCatalog(catalog)
END
/* C'est tout ! */
EXIT
A 1200 2 Mo: 1800 F
A 2000 1 Mo: 1500 F
A 1200 + Pack Magie: 3190 F
A 1200+DD170+PMagic: 3990 F
DRIAM - N*25 • |ANVIER 1996
i
Unitę centrcie A500, A600, A1200. ecran 1083,1084 et 1085 ou en pannę.
Materiel garanti 6 mois pieces et main d'oeuvre. Logiciels garantis 30 jours. S.A.V. assurś par nos soins.
Expedition sur toute la France. Livralson sous 3 jours