Obligement - L'Amiga au maximum

Jeudi 17 août 2017 - 11:28  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


En pratique : Cataloguer des CD et disques durs avec FindDB
(Article écrit par Pascal Chiozzi - novembre 1997)


Lorsque Bruce Lepper m'a demandé de vous présenter FindDB, un catalogueur génial, je vous avoue que je savais pas bien comment m'y prendre pour que cela ne devienne pas la énième présentation du "DP du siècle" que tout le monde devrait avoir depuis longtemps. Surtout que FindDB n'est pas très récent, puisque la dernière version (1.4) date de 1995 et, de plus, n'a pas d'interface utilisateur. Et Pascal Willano fait cela très bien. Par contre, en visitant plusieurs clubs, démo parties et manifestations Amiga, j'ai remarqué, chez pas mal d'utilisateurs, un manque de connaissance de l'AmigaDOS. Je voudrais donc profiter de cet article pour vous expliquer comment construire une petite interface pour contrôler FindDB et que vous pourrez, ensuite, très facilement adapter à vos besoins.

"Ho ! La, la ! L'autre, une interface, mais je suis pas programmeur, moi." Eh bien, rassurez-vous, moi non plus, il n'y a pas besoin d'être programmeur pour suivre cet article. Ce que je vous propose, c'est une interface sous AmigaDOS.

Quelques outils

Vous aurez besoin du Workbench 3.0 ou plus puisque nous utiliserons principalement, pour notre interface, deux petits programmes, fort utiles, mis à notre disposition par les concepteurs de l'AmigaDOS : RequestChoice (requête de choix) et RequestFile (requête de fichiers), ainsi qu'un éditeur de texte (AZ, GoldED, mais ED, livré avec votre Workbench fera très bien l'affaire) pour le script.

Le livre de l'AmigaDOS (que vous avez dû normalement recevoir avec votre ordinateur) serait d'une aide non négligable pour vous aidez à comprendre toutes les options possibles pour les différentes commandes que nous allons utiliser. Je vais bien sÛr essayer de commenter le script au maximum, mais je ne rentrerai pas dans le détail pour les commandes tel que Dir, List, Assign, Execute, etc. (livrés depuis les premières versions du système) pour me concentrer sur les nouveautés du 3.0. Pour tous ceux, qui n'arriveraient plus à mettre la main sur ce précieux ouvrage, il existe dans le DP, une archive, DosMan121.lha, contenant une aide complète, en anglais, de toutes les commandes AmigaDOS. Un article sur le Shell et ses commandes AmigaDOS 3.x est également disponible.

Un disque dur est fortement recommandé pour l'emploi de FindDB, ainsi qu'un lecteur de CD (ou un accès à Internet) pour pouvoir récupérer les divers programmes DP dont nous aurons besoin au cours de notre exercice. Cet article s'adresse donc plutôt à tous ceux, qui sont allergiques au coquillage (Shell), avec un minimum de connaissances. Pour les pros qui suivent régulièrement les rubriques programmations de mes collègues, vous ne m'apprendrez sûrement pas grand-chose, mais comme vous avez déjà quelques longueurs d'avance, j'espère que vous ne m'en voudriez pas trop.

FDB retrouve vos fichiers en un éclair

FindDB (FindDataBase) de Klaus Melchior retrouve rapidement un fichier ou un répertoire en utilisant des bases de données sauvegardées sur votre disque dur. Dans l'archive se trouvent, en fait, quatre programmes :
  • UDB, qui permet de créer vos propres bases.
  • CDB, pour les convertir.
  • LDB, pour les afficher sous forme de liste.
  • FDB pour les recherches.
FindDB, n'est en aucun cas un gestionnaire de bases de données, vous ne pourrez donc pas faire de tri ou rajouter/supprimer quelque chose dans une base. La grande force de ce DP, c'est sa simplicité à gérer de grande masse de données, mais surtout sa rapidité. Pour vous donnez une idée, la recherche du mot "fdb" sur la base du CD Aminet Set 3A s'effectue en moins de 2 secondes et environ 4 à 5 secondes pour le Set 3 complet (sur mon 1230 + disque dur 3,5" Western Digital 31200 1,2 Go IDE).

Je l'utilise surtout pour "cataloguer" mes CD. Pourquoi, me direz-vous, il y a déjà un programme comme ça sur les CD Aminet (Afind). Oui, sur les CD Meeting Pearls, AmigaPlus, Amiga Magazine aussi, mais le problème c'est qu'ils utilisent tous un programme différent, avec des bases de données, de parfois, plusieurs mégaoctets.

Mise en place

Première chose à faire, récupérer fdb1_4.lha (ou sur les CD Aminet 10 ou Aminet Set 3A) et l'installer. Comme il n'y a pas de programme d'installation, il faudra effectuer cela vous-même à la main. Copiez CDB, FDB, LDB, UDB dans votre répertoire (ou assignation) C: et la documentation où vous voulez (pourvu que vous la retrouviez). Il faudra aussi créer une assignation FindDB: permanente dans votre user-startup pour le stockage des bases quelque part sur votre disque dur.

Dans la foulée, récupérez aussi ESR.lha (ou dans Aminet Set 1A). Easy String Requester de Scott Ellis va nous permettre d'utiliser les requêtes avec cellule de saisie de la reqtools.library (Aminet/util/libs) de Nico François, dont nous aurons besoin pour communiquer le nom du fichier recherché à FindDB. Copiez ESR aussi dans C: et la reqtools.library dans Libs:.

Avant de commencer notre interface pour FindDB, il vous faut encore au moins une base de données pour que vous puissiez y faire des recherches. Vous trouverez sur Aminet déjà un grand nombre de bases de CD (voir liste en fin d'article). Mais vous pouvez aussi en créer une de votre disque dur. Je vous explique tout de suite comment faire cela, mais avant, il faut penser à l'assignation pour FindDB:. Tapez, dans un Shell, la ligne que vous avez rajoutée dans votre user-statup ou faites une réinitialisation de votre machine (il y a une option "DBPaths" pour chacun des programmes, qui permet de préciser le chemin oÙ sont stockées vos bases, mais grâce à l'assignation cela vous évitera d'avoir à taper des chemins à rallonge du style "Work:Bases/FindDB").

Un index de votre disque dur

Vous allez, maintenant, pouvoir créer votre propre base. Pour voir la liste des différentes options pour UDB, dans un Shell, tapez :

C:UDB ?

Seules les deux premières sont vraiment nécessaires et nous intéressent aujourd'hui. La première "Paths" est le(s) nom(s) du(es) volume(s) à scruter. La deuxième "DB" est le nom que vous allez donner à votre base.

Pour créer votre base :

C:UDB Paths "DH0: DH1:" DB "DisqueDur"

Appuyez sur "Entrée" et c'est parti ! A ce moment-là, UDB commence à construire votre base en affichant différentes informations.

FindDB

Vous avez remarqué que l'on n'a pas précisé où sauvegarder la base. UDB sauve par défaut toutes les bases dans FindDB:.

Et voici l'interface

Maintenant que vous avez tous les éléments, nous pouvons commencer à installer l'interface promise en début d'article ! Lancez votre éditeur ou dans votre Shell resté ouvert, tapez :

Run C:Ed FDB-GUI

Et rentrez-y le script suivant (sous AmigaDOS, tout ce qui se trouve après un ";" est considéré comme commentaire et est ignoré lors de l'exécution du script) :

;$VER: FDB-GUI v1.0 Chiozzi Pascal pour Amiga News Magazine.

On lance la commande "requestchoice" avec tous les arguments et on envoie la réponse dans ENV:choix.

C:requestchoice TITLE "FDB-GUI v1.0" BODY "Chercher dans toutes les bases ?" GADGETS "Oui|Non|Quit" >ENV:choix

Essayez de taper la même ligne dans votre Shell pour voir le résultat.

Requestchoice renvoie toujours un "1" si vous sélectionnez le premier bouton (le plus à gauche), "2" si vous sélectionnez le deuxième, etc., et toujours un "0" pour le bouton le plus à droite. Pour ceux qui suivent avec le Shell, sélectionnez une réponse dans la requête, à ce moment le fichier "choix" sera créé en ENV: (ou RAM:env/) contenant votre choix.

FindDB

Ce qui nous intéresse à présent, c'est de savoir quel bouton a été actionné. Pour cela, procédez comme suit : si l'utilisateur sélectionne "Quit" (le bouton le plus à droite), "choix" sera donc égal à "0", dans ce cas, on arrête là.

  If $choix EQ 0
    QUIT
  Endif

Si l'utilisateur répond "Oui", on continue, on crée la variable "FDBbase" et on y met "#?" pour que FDB fasse la recherche sur toutes les bases.

  If $choix EQ 1
    Set >NIL: FDBbase "#?"
  else

Si l'utilisateur répond "Non", on lance "Requestfile" pour choisir une base.

C:requestfile >ENV:FDBbase DRAWER FindDB: PATTERN "#?.codes" ACCEPTPATTERN "#?.codes" NOICONS TITLE "Sélectionne la base à Explorer:" positive Okay negative Quit

Si, à ce moment, l'utilisateur appuie sur "Quit", la variable "FDBbase" ne sera pas créé et on quitte.

  if NOT $FDBbase
    QUIT
  endif

Idem, si l'utilisateur appuie sur "Okay", mais n'as pas sélectionné de base.

  if $FDBbase EQ "FindDB:"
    QUIT
  endif

Les quatre lignes suivantes, on supprime le ".codes" pour obtenir le nom de la base sans extension.

    COPY ENV:FDBbase to ENV:FDBbase2
    LIST >ENV:FDBlist ENV:FDBbase2 LFORMAT %L
    EVAL >ENV:FDBres $FDBlist - 9
    ECHO >ENV:FDBbase $FDBbase2 NOLINE FIRST 0 LEN $FDBres
  endif

On définit une nouvelle variable "FDBfile" pour le nom du fichier recherché et on lance ESR.

  Set >NIL: FDBfile ""
  Set FDBfile `ESR "" TITLEBAR "FDB_Gui" MESSAGE "Fichier Recherché:"`

Si aucun nom de fichier n'a été rentré, on quitte.

  if "$FDBfile" EQ ""
    QUIT
  endif

Ici commence la confection du guide pour les résultats de la recherche. On envoie les trois lignes suivantes dans un fichier "Temp-1" :

  Echo >RAM:T/Temp-1 "@DATABASE FindDB"
  Echo >>RAM:T/Temp-1 "@NODE MAIN *"Trouvé sur >>$FDBfile<<*""
  Echo >>RAM:T/Temp-1 ""

On lance FDB avec les différentes variables comme argument et on envoie la sortie dans le fichier "Temps-2".

  C:FDB db $FDBbase $FDBfile >RAM:T/temp-2

On rajoute encore deux lignes pour finir notre guide.

  Echo >>RAM:T/Temp-2 ""
  Echo >>RAM:T/Temp-2 "@ENDNODE"

On assemble les deux fichiers "Temp-1" et "Temp-2" et on envoie le tout à Multiview.

  Join RAM:T/Temp-1 RAM:T/Temp-2 TO RAM:T/FindDB.guide
  Sys:Utilities/Multiview RAM:T/FindDB.guide

Et pour finir, on efface tout.

  Delete >NIL: ENV:FDB#?
  Delete >NIL: RAM:T/Temp-1 RAM:T/Temp-2
  Delete >NIL: RAM:T/FindDB.guide

Sauvez ce script et ajoutez-y une icône de projet avec comme outil par défaut "IconX".

A la prochaine fois

Voilà pour aujourd'hui, si cela vous a intéressé, je vous propose, la prochaine fois, de continuer notre petite interface pour pouvoir aussi utiliser UDB, CDB, LDB. En attendant, si vous avez des questions, vous pouvez m'envoyer un message à "cpf@amiganews.com".

Liste des CD pour FDB disponibles sur Aminet


[Retour en haut] / [Retour aux articles]