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