Afin de faire un tour plus en pratique de Gambas, voyons comment créer une petite application. Faisons simple : le programme ouvrira un fichier, comptera les occurrences de chacun des mots trouvés et les affichera dans un tableau, trié par nombre d'occurrence décroissante.

Pour cela, je crée un formulaire qui contient un menu et une ListBox (fenêtre pouvait contenir une liste). L'éditeur de menus est très simple d'utilisation.

Dans le même temps, Gambas a créé une classe de même nom que mon formulaire (FMain). Cette classe contient initialement ce qui a été demandé lors de la création du formulaire. Dans mon cas, j'ai un constructeur et un destructeur.

L'éditeur de menu est très simple, il suffit d'ajouter les entrées sous forme hiérarchique.

De même, ajouter la réponse à un évènement se fait aisément : un clic droit sur la widget concernée, sélection de l'évènement dans le sous-menu approprié. Une méthode apparait alors dans le source. Ici, j'ai ajouté le traitement de l'évènement Enter sur la liste. La méthode créée est PUBLIC SUB ListBox1_Enter(). J'y ajoute pour tester une commande ListBox1.ADD("Un"), qui ajoutera à la liste un élément contenant la chaîne "Un".

Copie d'écran Gambas

Pour tester, le raccourci F5 correspond au menu Projet->Démarrer. C'est bon, à chaque fois que le curseur de la souris entre dans la zone de la liste, une ligne contenant le mot "Un" est ajoutée.

Revenons au test. Dans le menu, j'ai ajouté une entrée Fichier qui contient Ouvrir... et Quitter. Un clic sur Quitter fait sortir de l'application. Un clic sur Ouvrir va demander un fichier.

Voici ce que cela donne :

PRIVATE SUB Lire(sChemin AS String)
  PRINT sChemin
END
 
PUBLIC SUB Ouvrir_Click()
  Dialog.Filter =  \[ "All files (*.*)" \]
  IF Dialog.OpenFile() THEN RETURN
  Lire(Dialog.Path)
END

La méthode Ouvrir_Click() a été générée automatiquement en cliquant sur Ouvrir du menu. Il a resté à la remplir. Dialog est un objet qui permet d'ouvrir des boites de dialogues commune, ouvrir un fichier, sauver un fichier ou encore choisir une couleur. On lui donne avant une liste de filtres, ici tous les fichiers, puis on provoque son ouverture. Si aucun fichier n'a été sélectionné, la fonction renvoie vraie (étrange non ?) et l'on sort de la méthode. Sinon, on appelle une fonction chargée de lire le chemin.

On remarquera que l'éditeur possède une aide à la frappe. À peine appuyé entrée à la fin de la déclaration de la méthode qu'il ajoute automatiquement le END correspondant.

On remarque aussi que Gambas possède un typage des variables, qu'il faut d'ailleurs déclarer. Ainsi, le paramètre sChemin est déclaré comme étant une chaîne de caractères (String).

La méthode Lire() est privée, car "interne" à FMain. Pour le moment, dedans, on ne fait qu'un PRINT, pour voir. Effectivement, en démarrant le programme, si on choisi un fichier, il sera affiché dans la console de debug. Parfait.

Le reste des commentaires se trouve dans le fichier source, disponible dans l'archive liée à cet article. Voici un aperçu du résultat sur un texte assez long. On remarquera au passage les limites de ce petit programme de texte, qui fait la différence entre "suis" et "suis,".

Copie d'écran de Gambas

Résumé
  • Type : langage orienté objet
  • Famille : Basic
  • Environnement : Intégré avec développement graphique d'interfaces
  • Compilation : byte code exécuté par une machine virtuelle fournie
  • Version testée : 0.80
  • Version au 2004 02 26 : 0.90

Un langage qui peut s'avérer utile pour le développement des petites applications rapidement. Pour ceux qui utilisent déjà un Basic, cela permettra de ne pas être perdu par une syntaxe étrange, même si chaque Basic a ses particularités.

Il manque encore cependant beaucoup d'exemples de code, ce qui fait que l'on se perd rapidement en cherchant dans la documentation en long et en large.

Mise en ligne : 2004 02 26