Obligement - L'Amiga au maximum

Samedi 20 avril 2024 - 09:07  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Programmation : ARexx - itératives, tableaux, chaînes
(Article écrit par Xavier Leclercq et extrait d'Amiga News - novembre 1992)


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...

ARexx

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 :

ARexx

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.

ARexx

Le "DO FOR x" est efficace à condition de connaître à l'avance le nombre d'itérations qu'il faudra effectuer.

ARexx

Le "DO FOREVER" boucle indéfiniment. Pour interrompre ce cycle infernal nous devrons utiliser "BREAK".

ARexx

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 :

ARexx

L'incrémentation de "I" est de plus automatique. Plus besoin de la séquence "I = I + 1".

ARexx

Cette forme "DO UNTIL condition" est assez proche de la forme algorithmique classique vue plus haut :

ARexx

Cette forme est un peu le contraire de la précédente : "faire tant que la condition se réalise".

ARexx

"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 :

ARexx

Nom du tableau + un point + ordre dans le tableau permet l'accès à un élément. Les tableaux peuvent être à plusieurs dimensions :

ARexx
ARexx

Les fonctions de conversion

Elles sont au nombre de six et permettent une conversion :
  • D'une base binaire vers un caractère : B2C.
  • D'un caractère vers une base binaire : C2B.
  • D'un caractère vers une base décimale : C2D.
  • D'une base décimale vers un caractère : D2C.
  • D'un caractère vers une base hexadécimale : C2X.
  • D'une base hexadécimale vers un caractère : X2C.
ARexx

Manipulations de chaînes

Voici les fonctions qui manipulent des chaînes et des mots :
  • REVERSE(CHAINE) : inverse l'ordre des lettres dans la phrase.
  • RIGHT(CHAINE,LONGUEUR) : extraire une portion à droite de la chaîne.
  • LEFT(CHAINE,LONGUEUR) : extraire une portion à gauche de la chaîne.
  • LASTPOS(SOUS-CHAINE,CHAINE) : recherche la dernière position de la sous-chaîne enfermée dans la chaîne.
  • INDEX(CHAINE,SOUS_CHAINE) : recherche la première position de la sous-chaîne enfermée dans la chaîne.
  • COMPARE(CHAINE1,CHAINE2) : retournera une valeur qui correspond à la position du premier caractère qui diffère.
  • WORD(CHAINE,N) : extraire le énième mot de la chaîne.
  • WORDINDEX(CHAINE,N) : informe de la position du énième mot de la chaîne.
  • WORDLENGTH(CHAINE,N) : retourne la longueur du énième mot de la chaîne.
  • WORDS(CHAINE) : compte le nombre de mots de la chaîne.
ARexx
ARexx

Fonctions numériques

Peu nombreuses, mais encore assez courante dans d'autres langages, donc indispensables :
  • ABS(NBRE) : retourne la valeur absolue du nombre.
  • MAX(N1,N2,N3,...) : renseigne sur le plus grand des nombres.
  • MIN(N1,N2,N3,...) : renseigne sur le plus petit des nombres.
  • SIGN(NBRE) : retourne "1" si le nombre est positif, et "-1" si le nombre est négatif.
ARexx

L'instruction "SIGNAL"

Elle permet un branchement automatique à un label spécifié dès qu'un événement spécial se produit.
  • SIGNAL ON BREAK_X : X représente une des quatre touches de "Ctrl" qui sont maîtrisables via ARexx : Ctrl-C, Ctrl-D, Ctrl-E, Ctrl-F (X = C OU D OU E OU F).
Il s'agit d'une redirection du compteur de programme. Si en cours d'exécution vous appuyez sur "Ctrl_C" et que "SIGNAL ON BREAK_C" existe, le programme se branchera automatiquement au label "BREAK_C".

ARexx

Certains langages (BASIC) possèdent l'instruction "ON ERROR GOTO", ARexx a dans son bagage quelque chose de similaire : "SIGNAL ON SYNTAX".

ARexx

Si maintenant vous vient à la tête de manipuler une variable non encore définie, ARexx vous préviendra :

ARexx
ARexx

Instructions diverses
  • EXIT n : sort du programme en transmettant au CLI/Shell la valeur "n" (Si N = 0 pas d'erreur).
  • INTERPRET(X) : commande très puissante puisqu'elle permet d'interpréter une variable ! Vous pouvez ainsi paramétrer un fichier qui une fois lu pourra être "traduit" en ARexx par "INTERPRET".
ARexx
  • TIME() : affiche l'heure courante.
  • SETCLIP(CLIP,VALEURS) : si vous avez connu l'époque du Commodore 128 vous allez comprendre sans difficulté cette notion. Il s'agit de banques de données qui sont visibles par tous les programmes ARexx. "CLIP" est un nom, "VALEUR" est une suite de données.
  • GETCLIP(CLIP) : recherche les données stockées.
  • PRAGMA('DIRECTORY ') : retourne le répertoire courant.
ARexx

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 :
  • D2C(10) -> produit un retour de chariot.
  • D2C(9) -> une tabulation.
  • D2C(12) -> un "Form Feed" qui efface l'écran.
ARexx


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]