Obligement - L'Amiga au maximum

Vendredi 08 mai 2026 - 12:36  

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 Mastodon




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

 


En pratique : Créer un bouton "Extract" pour Directory Opus et FileMaster
(Article écrit par Guillaume Guittenit et extrait de lesdocs.fr/amiga - avril 2026)


La plupart des utilisateurs de Directory Opus empilent maladroitement les boutons pour extraire chaque archive : un pour le Zip, un pour le Lha, un pour le Lzx, un pour l'ADF, etc.

bouton extraire

Mais pourquoi ne pas créer un unique bouton "Extraire" comme sur les systèmes d'exploitation modernes ? Quand on extrait une archive, on n'a pas besoin de préciser son format : on extrait simplement tous les fichiers. Étant donné que les gestionnaires de fichiers permettent de lancer des scripts AmigaDOS ou ARexx, alors pourquoi ne pas l'implémenter ?

Je propose l'élégance et la simplicité d'un seul bouton "Extract" comme ci-dessous :

bouton extraire

1. N'est-ce pas déjà prévu par défaut ?

Dans la configuration de base de Directory Opus 4, il existe un bouton "Arc Ext". Ce bouton est relié à un obscur script USER1 qui extrait uniquement les archives Lha, et ce script n'est pas facilement modifiable. Suite à un double-clic sur une archive, Directory Opus reconnait également quelques types de fichiers comme le Lha et d'autres formats, bien obsolètes, comme le Zoo, et les "Arc archives". Si je parvenais à ajouter la reconnaissance des Zip et Lzx, cela fonctionnerait au double-clic sur l'archive. Mais je tiens à l'ergonomie de mon unique bouton "Extract". De plus, je souhaite que mon script fonctionne avec d'autres gestionnaires de fichiers comme l'excellent FileMaster.

2. Recherche de minimalisme et d'ergonomie dans Directory Opus

Affichant une haute résolution non entrelacée, précisément 724x270 pixels avec le suraffichage, j'ai décidé de réduire la zone des boutons de Directory Opus à deux rangées afin de garder le maximum de place pour l'affichage des fichiers. Beaucoup de boutons sont accessoires ou peuvent, par exemple, être remplacés par un simple bouton "Multiview". C'est dans ce contexte minimaliste que m'est venue l'idée du bouton "Extract".

bouton extraire

3. La recherche du script parfait

Après avoir écumé des scripts trop complexes s'appuyant sur des fonctionnalités tierces sur Aminet, j'ai décidé de le coder moi-même, avec les commandes de base d'AmigaDOS, de la façon la plus minimaliste possible, à l'aide de mon manuel DOS et de ChatGPT qui s'est révélé... assez approximatif concernant AmigaDOS. En effet, l'IA propose parfois des commandes qui n'existent pas, provenant de MS-DOS, ou en cas d'échec, m'oriente systématiquement vers ARexx. Mais ARexx est à utiliser quand AmigaDOS se révèle insuffisant, et je suis certain qu'AmigaDOS peut le faire. L'IA est pointue sur les langages utilisés par le plus grand nombre et beaucoup moins sur les langages "de niche". ChatGPT a néanmoins été un bon assistant et m'a suggéré quelques bonnes idées.

4. Les extracteurs utilisés

Pour que le script fonctionne, il faudra bien évidemment télécharger et installer dans le dossier "C" les extracteurs suivants :
Remarque : sous AmigaOS 3.2, la commande "DAControl" peut monter un volume ADF dans le Workbench. Cependant, elle ne permet pas d'en extraire le contenu dans la destination indiquée par Directory Opus ou FileMaster. C'est la raison pour laquelle je préfère utiliser la commande UnADF. Notez également qu'il est impossible d'extraire les ADF non DOS.

5. Le script AmigaDOS

5.1 Stratégie n°1 : lire le type de fichier dans l'entête

La difficulté avec AmigaDOS, c'est d'arriver à déterminer le type d'archive. J'ai d'abord essayé de lire les entêtes avec la commande "SEARCH" en recherchant, par exemple, l'expression "-lh" pour les Lha. Cela fonctionnait, mais c'était très lent pour les archives volumineuses et je voulais que mon script tourne sur les petites configurations. J'ai ensuite essayé de copier les premiers octets de l'archive dans un fichier temporaire de la RAM pour y faire une recherche. Mais la commande "TYPE" copie la totalité du fichier, il est impossible d'en extraire un bout. Je n'ai donc pas réussi à extraire l'entête des fichiers avec toutes les commandes AmigaDOS. J'ai vu qu'il existait une commande "Head" sur Aminet qui permet d'extraire l'entête d'un fichier, mais je tiens à le faire avec les commandes de base d'AmigaDOS.

5.2 Stratégie n°2 : lire l'extension de l'archive

Changement de stratégie : j'opte pour la lecture de l'extension de l'archive. Et pour extraire une extension, c'est plutôt ARexx qui sait faire avec la commande "Parse". Au bout de quelques heures de tâtonnements, j'ai finalement trouvé une façon rapide de le faire en AmigaDOS :
  1. Je copie le nom de l'archive dans un fichier texte temporaire avec la commande "Echo".
  2. J'y recherche l'extension lha, zip ou lzx avec la commande "SEARCH" (insensible à la casse) qui laisse un "0" dans l'indicateur de condition si l'extension n'est pas trouvée, et un "5" (WARN) dans le cas contraire.
  3. Je lance la commande d'extraction appropriée grâce à l'instruction conditionnelle "IF NOT WARN".
Même si le script est basique, je me suis bien trituré les méninges pour arriver à cette simplicité :

.key file/A

ECHO <file> >T:file_tmp

SEARCH T:file_tmp "lha" QUIET
IF NOT WARN
	Lha x "<file>"
ENDIF

SEARCH T:file_tmp "zip" QUIET
IF NOT WARN
	Unzip "<file>"
ENDIF

SEARCH T:file_tmp "lzx" QUIET
IF NOT WARN
	Lzx x "<file>"
ENDIF

SEARCH T:file_tmp "adf" QUIET
IF NOT WARN
	unadf "<file>" DEST=""
ENDIF

DELETE T:file_tmp QUIET

Le ".key file/a" est relié à la variable "{f}" dans Directory Opus et FileMaster. Il désigne le fichier à extraire, c'est-à-dire celui sur lequel l'utilisateur aura cliqué, et se manipule dans le script avec la balise "<file>". L'expression "NOT WARN" ne fonctionne qu'avec le Workbench 2.0, c'est donc la version minimum requise par ce script.

6. Ajout du bouton "Extract" dans Directory Opus ou FileMaster

Après avoir enregistré le script sous le nom "Extract" dans le dossier "S" du Workbench, il faut ajouter un bouton "Extract" dans Directory Opus :

bouton extraire

Il faudra cocher la fonction "CD destination" et je conseille vivement l'option "Fenêtre de sortie" pour contempler le déroulé de l'extraction.

Parce qu'il n'y a pas que Directory Opus dans la vie et qu'il y a aussi FileMaster :

bouton extraire
Dans FileMaster, le champ "Pattern" (motif) permet de réagir à un simple double-clic sur l'archive

bouton extraire
Je sélectionne une archive, puis j'appuie sur le bouton "Extract". C'est magique !

bouton extraire
Même succès sous FileMaster

Conclusion

Je suis heureux d'avoir pris le temps de faire ce petit script et qui aurait dû être implémenté par défaut dans tous les gestionnaires de fichiers. J'espère qu'il sera utile à d'autres, et comme il est simple et compréhensible, chacun pourra y ajouter d'autres formats d'archives.
  • Le script "Extract" est téléchargeable ici : Extract.
  • Ma configuration minimaliste pour Directory Opus 4 sous Workbench en haute résolution non entrelacée : DirectoryOpus.CFG.


[Retour en haut] / [Retour aux articles]


Soutenez le travail de l'auteur