|
|||||||||||||||||||||||||||||||||||||
|
Dans la première partie nous avons parlé du lancement d'ARexx, des commentaires, des variables, des opérateurs, des verbes d'entrées/sorties et des alternatives. Entrons dès lors dans le vif du sujet sans préambule pour aborder le point suivant. Les itératives Mais d'abord, que signifie le mot "itérative" ? Strictement parlant, il s'agit d'une alternative masquée... ![]() Un langage de programmation à la base n'a donc pas besoin d'itératives. L'important est de posséder une structure alternative et un moyen de branchement seulement. Algorithmiquement parlant, une manière correcte de représenter l'itérative est : ![]() Ce qui signifie que la partie algorithmique comprise entre les mots "répéter" et "jusqu'à ce que" doit être répétée tant que la condition spécifiée après le "jusqu'à ce que" ne soit pas vraie. ARexx reconnaît une série de commandes pour piloter ses itératives. La règle générale est que toute itérative est incluse entre les mots DO ... END. ![]() Le "DO FOR x" est efficace à condition de connaître à l'avance le nombre d'itérations qu'il faudra effectuer. ![]() Le "DO FOREVER" boucle indéfiniment. Pour interrompre ce cycle infernal nous devrons utiliser "BREAK". ![]() Le verbe ARexx "BREAK" permet d'introduire ce que l'on nomme la rupture de séquence et permet de quitter la boucle pour continuer à la première ligne qui suit le "END" de la boucle (on peut utiliser également l'instruction "LEAVE" à cet usage). Pour éviter l'initialisation de départ "I = 1" on peut employer la structure itérative suivante : ![]() L'incrémentation de "I" est de plus automatique. Plus besoin de la séquence "I = I + 1". ![]() Cette forme "DO UNTIL condition" est assez proche de la forme algorithmique classique vue plus haut : ![]() Cette forme est un peu le contraire de la précédente : "faire tant que la condition se réalise". ![]() "ITERATE" a pour fonction de passer directement à l'itération suivante. Dans ce cas très spécial SAY "On m'oublie" ne connaîtra jamais la joie de s'afficher à l'écran. Les tableaux ARexx ne gère pas les tableaux comme la plupart des langages. Un tableau est déclaré comme suit : ![]() Nom du tableau + un point + ordre dans le tableau permet l'accès à un élément. Les tableaux peuvent être à plusieurs dimensions : ![]() ![]() Les fonctions de conversion Elles sont au nombre de six et permettent une conversion :
![]() Manipulations de chaînes Voici les fonctions qui manipulent des chaînes et des mots :
![]() ![]() Fonctions numériques Peu nombreuses, mais encore assez courante dans d'autres langages, donc indispensables :
![]() L'instruction "SIGNAL" Elle permet un branchement automatique à un label spécifié dès qu'un événement spécial se produit.
![]() Certains langages (BASIC) possèdent l'instruction "ON ERROR GOTO", ARexx a dans son bagage quelque chose de similaire : "SIGNAL ON SYNTAX". ![]() Si maintenant vous vient à la tête de manipuler une variable non encore définie, ARexx vous préviendra : ![]() ![]() Instructions diverses
![]()
![]() Exemple récapitulatif Il existe encore quelques instructions que nous étudierons plus tard, mais en gros vous connaissez déjà l'ABC du langage. Si vous prenez un listing source publié dans cet article, vous allez donc vous étonner de ne pas tout comprendre. Ceci est tout à fait normal. En effet, Cédric Beust ouvrait dès le départ une bibliothèque spéciale qui elle-même contient des fonctions spécifiques qui ne sont pas des instructions ARexx... Nous étudierons cela ensemble la prochaine fois. Exemple : gérez vos disquettes Fish Le programme suivant crée le catalogue de vos AmigaLibDisks. Vous introduisez vos Fred Fishs une à une dans n'importe quel ordre. Le programme ARexx se chargera de les trier et de créer un catalogue commun (par ordre croissant). Vous devrez spécifier le chemin + nom_du_fichier_catalogue à la fin de l'introduction de vos FF. Bon coding ! Notes :
![]()
|