Nouveau test en Xul, sur du texte.
Par yves le mardi, mars 28 2006, 00:45 - Logiciels - Lien permanent
Voilà un nouveau petit essai avec Xul, basé sur des manipulations de texte.
Explications complémentaires...
{toc}
Présentation
Cet essai est basé sur les textes et une des idées du logiciel Aller, de la série du terrier d'abuledu, en beaucoup plus simple évidemment.
Le but est de retrouver les éléments remplacés par les zones de saisie. Si la réponse est bonne elle apparaît en vert, sinon en rouge. Dans ce dernier cas il suffit de cliquer sur cette zone rouge pour remettre la zone de saisie et recommencer. On peut choisir soit d'enlever la ponctuation, soit tous les mots, soit les articles.
En terme de programmation, cet essai utilise notament des expressions régulières et un xmlhttprequest qui va chercher le texte au moment où son affichage est demandé. Cela fonctionne aussi avec les fichiers copiés sur le disque dur de la machine, et l'application peut servir en local ou via un serveur web. Seul les textes demandés sont chargés.
C'est un exemple pour utiliser les possibilités d'analyse de texte et d'affichage à la demande, et également la saisie de texte, éléments assez fréquents dans les logiciels éducatifs.
Le reste est technique, arrétez la lecture ici si la programmation ne vous intéresse pas.
Techniquement
Il y a trois objets créés via les bindings xbl, les voici avec leurs principales méthodes:
- la liste qui permet de choisir le texte: lors du choix cet objet utilise un
xmlhttprequestpour charger le texte, et appelle la méthode de l'objet description qui met en place le texte.
L'avantage du xmlhttprequest est qu'il utilise le cache du navigateur pour ne pas charger le même texte deux fois, et qu'il analyse automatiquement le fichier qui revient.
- la description qui affiche le texte. Cet objet utilise essentiellement:
- une méthode pour mettre le texte en place, qui le découpe en mots et ponctuation à l'aide d'expressions régulières.
- une méthode appelée par les boutons de choix d'exercice, qui appelle elle même la méthode de chaque éléments du texte qui met en place l'exercice.
- une méthode (property en fait) qui tient le compte des bonnes réponses pour afficher le sourire quand c'est fini.
- Les éléments de texte, mot ou ponctuation. Leurs méthodes principales sont:
- Une méthode qui remplace le mot par une zone de saisie suivant l'exercice.
- une qui vérifie si la saisie est correcte et met le fond en vert ou rouge suivant le cas.
Les expressions régulières
Ce sont des expressions qui s'écrivent d'une façon assez absconse pour le néophyte, mais leur puissance est remarquable pour comparer et chercher des chaines particulières au sein d'un texte.
J'ai utilisé par exemple: /^(([Ll][ea])|([uU]n)|([Uu]ne)|([Dd]es)|([lL]es))$/ qui cherche des éléments pouvant correspondre à le, Le, la, La, un, Un, une, Une, Des, des, les, Les. Je suis à peu près sûr qu'on peut faire plus court pour le même travail, mais je ne suis pas un spécialiste de la question et je me contente donc de ce que j'arrive à faire facilement.
Ce qu'on pourrait ajouter
L'identification et l'envoi de résultats au serveur web ou dans un fichier local, toujours via xmlhttprequest qui marche dans les deux sens. Côté serveur il faudrait mettre un script qui reçoit les information et les stocke de façon convenable. PHP semble une bonne solution pour cela. Cela nous amènerait un peu plus loin que la simple démonstration que je m'étais fixé pour but.




clics


