Nous allons entreprendre un premier travail: la conception d'un prototype de POQédexMD, équipement essentiel s'il en est un.
En utilisant un module fourni par les professeurs pour simuler l'existence d'un--très petit--serveur de bases de données, et à l'aide d'un certain nombre de petites images, vous devrez produire un petit POQédexMD répondant à l'ensemble des critères ci-après.
Comme tout bon dresseur de POQémonMD le sait, capturer des POQémonMD est une tâche en soit très délicate. Et cette tâche se complexifie davantage du fait qu'il existe une impressionnante variété de PM en liberté.
Tout dresseur de POQémonMD qui se respecte aura besoin d'un POQédexMD. Le POQédexMD, lorsqu'il se trouve à proximité d'un POQémonMD, réagira en émettant un bref effet visuel ou sonore--rien pour rendre les voisin(e)s fous/ folles, je vous en prie; juste un léger signal--puis accédera à une base de données, de laquelle il tirera des données propres au POQémonMD rencontré.
Le POQédexMD est un outil qui se représente bien par une interface personne/ machine. Son rôle est:
Pour un POQémonMD donné, le POQédexMD devra afficher:
Note: | gardez en tête qu'il est possible--pour ne pas dire probable--que votre POQédexMD évolue en cours de semestre. Écrivez donc du code de qualité dès le début; prenez soin de votre oeuvre; et surtout, faites régulièrement des copies de sauvegarde! |
Vous devrez vous créer un projet avec VB. Vos professeurs vous donneront le module «POQEDEXDB.BAS», que vous devrez inclure dans ce projet. Vous n'êtes en aucun cas autorisé(e) à altérer ce fichier.
Vos professeurs vous donneront aussi quelques fichiers «.BMP» et un fichier «.TXT». Ces divers fichiers devront être installés dans le répertoire de travail de votre application.
Document de support pour le TP0
Pour communiquer avec la base de données, vous devrez utiliser les procédures suivantes:
Note: | si aucune requête ne peut être répondue, «Recevoir» retournera une chaîne de caractères vide. |
Vous devrez implanter le code propre au traitement de deux (2) requêtes pour faire fonctionner votre POQédexMD.
La requête "RQPOQINDEX" sera envoyée pour savoir s'il y a un POQémonMD non loin. La forme sera:
"RQPOQINDEX;ID;;" |
où, bien sûr, "ID" est un numéro de requête unique.
La réponse à une requête "RQPOQINDEX" obéira au format suivant:
"REP;ID;Index;;" |
où, bien sûr, "ID" sera le numéro de la requête pour laquelle vous recevez une réponse, et "Index" sera l'index du POQémonMD détecté à proximité, "0" si aucun n'a été détecté par votre POQédexMD, ou encore "-1" s'il y a eu une forme quelconque d'erreur (par exemple, si vous avez émis une requête "RQPOQINDEX" avant de vous être connecté à l'aide de la procédure «Connecter»).
La requête "RQPOQINFO" sera envoyée pour savoir les données propres à un POQémonMD. La forme sera:
"RQPOQINFO;ID;Index;;" |
où "ID" est un numéro de requête unique, et "Index" sera l'index du POQémonMD duquel vous voulez en savoir plus.
La réponse à une requête "RQPOQINFO" obéira au format suivant:
"REP;ID;Info;;" |
où, bien sûr, "ID" sera le numéro de la requête pour laquelle vous recevez une réponse, et "Info" sera une chaîne de caractères--qui ne sera vide que si vous avez émis une requête "RQPOQINFO" pour un POQémonMD invalide--décrivant un POQémonMD, dont le format sera:
"nom;fich;descr;type;élément;taille;poids" |
dans laquelle «nom» est le nom du POQémonMD, «descr» sa description, «type» son type, etc. Notez que «fich» sera le nom du fichier contenant une image appropriée à ce POQémonMD, pour fins d'affichage (l'une des images fournies par vos professeurs).
Une 3ième requête sera disponible pour vous dépanner: la requête "RQSTATUS", qui retournera l'état de votre «serveur».
Nous vous invitons à émettre une requête "RQSTATUS" si vous rencontrez une erreur mais n'êtes pas certain(e) de la raison--donc, pour fins de déverminage.
|
|
"RQSTATUS;ID;;" |
"REP;ID;Info;;" |
où "ID" est un numéro de requête unique. |
où, bien sûr, "ID" sera le numéro de la requête pour laquelle vous recevez une réponse, et "Info" sera une chaîne de caractères descriptive de l'état du serveur. |
Supposons que vous êtes connecté(e) au serveur simulé de base de données. Supposons aussi que vous voulez savoir s'il y a un POQémonMD près de vous. C'est votre première requête. L'appel généré devrait être
Envoyer "RQPOQINDEX;1;;" |
Éventuellement, vous voudrez savoir la réponse à cette requête (qui portait le ID numéro 1). Vous aurez besoin d'une variable «Réponse» de type «String», à l'aide de laquelle vous effectuerez
Dim Réponse As String ' d'autre code, si nécessaire Recevoir Réponse If Réponse <> "" Then ' Traiter la Réponse End If |
La variable «Réponse» pourrait par exemple contenir "REP;1;25;;", ce qui signifierait «Réponse à la requête 1», qui était une requête «RQPOQINDEX», avec comme données "25", donc le POQémonMD d'index 25 a été trouvé.
Supposons maintenant que vous voulez en savoir plus sur ce POQémonMD. C'est votre deuxième requête. L'appel généré devrait être
Envoyer "RQPOQINFO;2;25;;" |
ce qui signifie «Je veux en savoir plus sur le POQémonMD à l'index 25».
Une réponse correcte à cette requête serait
"REP;2;Pikatchou;Pikatchou.bmp;Joli POQ souris;Souris;Électrique;0.4;6;;" |
ce qui signifierait «Réponse à la requête 2», avec comme données la description signifiant «Nom: Pikatchou, image: Pikatchou.bmp; Description: Joli POQ Souris; Type: Souris; Élément: Électrique; Taille: 0.4 mètres; Poids: 6 Kg».
Dans le but d'orienter votre réflexion, nous vous invitons à réfléchir sur les quelques points suivants:
Entreront dans les préoccupations d'évaluation les critères suivants:
Ceci se veut un bref résumé des requêtes et réponses avec lesquelles vous devrez opérer dans le cadre de ce travail:
|
|
"RQPOQINDEX;ID;;" |
"REP;ID;Index;;" |
"RQPOQINFO;ID;Index;;" |
"REP;ID;Info;;" |
"RQSTATUS;ID;;" |
"REP;ID;Info;;" |
Note: | format de la chaîne "Info" (en réponse à une requête "RQPOQINFO"): "nom;fich;descr;type;élément;taille;poids". |
À remettre le:
Amusez vous bien!