Obligement - L'Amiga au maximum

Vendredi 29 mars 2024 - 00:35  

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 - Programme FDir
(Article écrit par Johan Gerday - mars 2000)


Cours n°2 [FDir]

Les bibliothèques de fonctions - Premier programme terminé (Fdir).

Nous voici donc arrivés à la deuxième leçon, les bibliothèques de fonctions ARexx, il en existe déjà pas mal, entre autre :
  • RexxSupport (fourni avec AmigaDOS)
  • Rexxreqtools (permet d'utiliser reqtools pour les requêtes "Excellent")
  • RexxArpLib (permet d'utiliser la bibliothèque ARP)
  • RxAsl (permet d'utiliser la bibliothèque ASL, je préfère Reqtools)
  • RexxHost (?, je n'ai pas la documentation "récupérée dans un programme")
  • Rexxapplib (pas besoin de la charger, utilisée par ExecRexx "Compileur")
  • RexxRMF (?, pas encore testé)
  • RxWiz (utilisation de wizard.library)
  • RexxExtra (?, pas encore essayé)
  • RexxMathLib (bibliothèques de fonctions mathématiques)
Il en existe sûrement d'autres, mais je ne les possède pas.

Pour notre programme nous allons utiliser rexxreqtools :

rtfilerequest("Disk/Répertoire",," Titre requester ",,"Flags",variable)

Infos :

La variable n'est utilisée que lorsque l'on désire sélectionner plusieurs fichier (on verra cela plus tard). Pour avoir une requête de répertoire nous allons mettre rtfi_flags=freqf_nofiles à la place du mot Flags (pas de sélection de fichier).

rtezrequest(" Texte ",," Bouton_1 | Etc. "," Titre Requête ","Flags")

C'est parti.

/* Fdir v1.0 */
call close(stdout) /* On n'utilisera pas la fenêtre de sortie par défaut */

/* On ouvre notre propre fenêtre */
call open(stdout,"con:0/14/640/200/ fdir v1.0 ** Premier programme ARexx **/Close/Wait")

/***********************************************************************
On crée un système qui regarde si la bibliothèque est chargée, si elle ne
l'est pas on la charge. Sinon on continue (If Then Else).
Réutilisez cette routine lorsque vous désirez utilisez rexxreqtools.
************************************************************************/

If ~show("l","rexxreqtools.library") Then /* ~ = Not */

/************************************************************************
Explication: (Fonction ARexx intégrée Show - Voir in français)
Show("option","Bidule que l'on cherche")
option :
l = library
p = ports
f = noms de fichiers logiques ouverts
c = noms de la liste clip
*************************************************************************/

Call continuer /* On devra créer la sous-routine continuer */
Else           /* Sinon                                    */
Call charger   /* Idem continuer                           */

charger: /* Routine de chargement, peut-être réutilisée. */
call addlib("rexxreqtools.library",-5,-30)

/***********************************************************************
Explication: (Fonction ARexx intégrée Addlib - Charge une bibliothèque)
addlib("bibliotheque",priorité,decalage)

Une fois la routine terminée le programme continue avec la ligne
suivante.
************************************************************************/

continuer :
nl="0a"x /* x=hexadécimal donc : 0a en hexadécimal (Retour chariot) */ 
call rtezrequest(" Fdir v1.0 "||nl||,
                 ""||nl||,
                 " Version spéciale pour l'E-zine : "||nl||,
                 " Obligement "||nl||,
                 ""||nl||,
                 " Contactez : "||nl||,
                 " Brunet David "||nl||,
                 " Rue de l'Amiga, 4.0 "||nl||,
                 " 68000 Motorola "||nl||,
                 ""||nl||,
                 " Tél: 03.12.34.56.78 ",
                 ,," Fdir v1.0 © Grendel Soft 1999 ",)

/**********************************************************************
Si vous désirez centrer votre texte, il suffit de mettre dans flags :
rtez_flags=ezreqf_centertext.
***********************************************************************/

/* Création du menu avec rtezrequest */
menu :
call rtezrequest(" Fdir v1.0 Options "||nl||,
                 ""||nl||,
                 " 1 = Toutes les options "||nl||,
                 " 2 = Pas de dates "||nl||,
                 " 3 = Pas d'en-tête "||nl||,
                 " 4 = Taille en blocks"||nl||,
                 " 5 = Uniquement nom de fichiers "||nl||,
                 " 6 = Choix d'un motif (#?) ",
                 ," 1 | 2 | 3 | 4 | 5 | 6 | Quitter "," Fdir v1.0 © MÔa ",)

if rtresult==0 then /* Si on clique sur Quitter ou on presse Escape */
exit                /* On quitte le programme                       */
if rtresult==1 then /* Bouton 1 */
call list_opt1
if rtresult==2 then /* Bouton 2 */
call list_opt2
if rtresult==3 then /* Bouton 3 */
call list_opt3
if rtresult==4 then /* Bouton 4 */
call list_opt4
if rtresult==5 then /* Bouton 5 */
call list_opt5
if rtresult==6 then /* Bouton 6 */
call list_opt6

list_opt1:
call set_dir
address command "list all "dir
exit
list_opt2:
call set_dir
address command "list nodates "dir
exit
list_opt3:
call set_dir
address command "list nohead "dir
exit
list_opt4:
call set_dir
address command "list block "dir
exit
list_opt5:
call set_dir
address command "list files "dir
exit
list_opt6:
call set_dir
call set_pattern
address command "list "dir" pat="pattern 
exit

set_dir:
dir=rtfilerequest("ram:",," Fdir v1.0 Sélection du répertoire ",,"rtfi_flags=freqf_nofiles")
if dir=" " then /* pas de sélection */
exit            /* on quitte        */
else
Return
/*************************************************************
on retourne à l'endroit du script où l'on se trouvait avant
l'appel de la fonction
**************************************************************/ 

set_pattern:
/* rtgetstring = requête de chaîne de caractères */

pattern = rtgetstring("#?"," Insérez le motif désiré : ",,
                      " Fdir v1.0 sélection de motif ",,)
if pattern = " " then
exit
else
Returnb

/** Fin de notre premier utilitaire ARexx **/

Voilà notre commande List munie d'une interface graphique, beaucoup plus agréable à utiliser qu'une commande lancée du Shell.


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