GB1- Accès séquentiel aux fichiers

Rédigé par spheris Aucun commentaire
Classé dans : fichiers, gambas 1, Tutoriel, Tutoriels Mots clés : fichiers, gb1

Un exemple d'accès séqueltiel aux fichiers

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 occurences de chacun des mots trouvés et les affichera dans un tableau, trié par nombre d’occurence 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, selection 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étode 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".

gambas03th.png

 

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.

gambas04th.png

 

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 appercu 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,".

gambas05th.png

 

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

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.

GB1- Débuter en gambas

Rédigé par spheris Aucun commentaire
Classé dans : gambas 1, Tutoriel Mots clés : tutoriel, gb1

Gambas

Gambas est un langage de programmation et un environnement de développement graphique sous Linux. Le langage est un dialecte du Basic.

Installation

Gambas est un outil complet. Pour programmer en Gambas, il faut Gambas. Chargez le nécessaire sur la page officielle. Faites attention aux prérequis, Gambas en demande quelques-uns (à la date de rédaction, X11, QT3, KDE3, PostgreSQL et MySQL, les composants bases de données et KDE pouvant être désactivés).

La version utilisée ici est la version 0.80.

Premiers pas

Une fois lancé, Gambas propose d’ouvrir un projet ou d’en créer un. Un certain nombre d’applications exemples est disponible. Il est intéressant d’en ouvrir une pour voir à quoi ressemble la programmation Gambas.

 

 

Immédiatement, si votre système est correctement configuré, vous remarquerez que les textes ne concernant pas le langage sont affichés en français.

Différentes fenêtres sont affichées :

  • Projet : la fenêtre principale, qui contient le menu et l’arborescence des composants de l’application.
  • Propriétés : cette fenêtre, classique des environnements de développement d’interfaces, regroupe les propriétés d’un composant graphique sélectionné.
  • Boîte à outils : cette fenêtre contient les différents composants qui peuvent être ajoutés à une interface.

Si vous double-cliquez sur un composant de code source dans la fenêtre projet, celui-ci apparaîtra. De façon similaire, la fenêtre de construction d’interface apparaîtra en double-cliquant sur un composant de type formulaire.

 

gambas02th.png

Langage objet

Gambas est donc un langage orienté objet reprenant la syntaxe du Basic. Un projet est composé de classes, de formulaires, de modules et de données.

Les classes, comme dans les autres langages orientés objets, sont les modèles qui permettent d’instancier des objets. Comme certains autres langages, comme Java ou C#, une classe et une seule de l’application doit posséder une méthode statique comme point d’entrée du programme. Avec Gambas, cela se spécifie dans la boite de dialogue de création de la classe, ce qui aura pour effet de créer dans le code de la casse une méthode STATIC PUBLIC SUB Main() automatiquement.

Les formulaires sont les différents éléments d’interfaces qui peuvent être affichés et traités par l’application. Créer un formulaire crée automatiquement une classe correspondante, chargée du traitement de ce formulaire.

Les modules sont des fichiers qui contiennent des utilitaires pour l’application. Des fonctions par exemple. D’après la documentation, les modules sont présents pour faciliter la migration de programmes venant d’autres Basic du même style. L’auteur recommande de ne pas utiliser les modules.

Les données sont tous les autres fichiers.

Gambas n’utilise que quelques éléments "objets". Il n’y a entre autre pas de concept d’héritage, sauf dans les composants utilisé. Il existe cependant un type "Object" qui désigne un objet de type quelconque. L’orientation objet de Gambas permet cependant quelques protections : une méthode peut-être publique ou privée. Une méthode peut aussi être une méthode de classe. Même chose pour les variables membres.

Le but du langage est clair : crée rapidement des applications, très probablement en fournissant une interface graphique, avec des concepts simples et un minimum de réutilisabilité.

Instructions

Gambas est un Basic, et les mots clés d’un Basic moderne sont utilisés. Ainsi, en plus du classique FOR existe FOR EACH, à appliquer sur une Collection.

Un sytème de gestion d’erreur est offert avec les instructions CATCH ou bien TRY. La gestion des fichiers n’est pas oubliée, ainsi que les entrées consoles de données.

Dans les fonctions de base, on trouve aussi une gestion des types, des conversions entre les types de base, des opérations bit à bit, la gestion du temps, des fonctions mathématiques, une gestion de chaînes de caractères,…

Composants

À un programme Gambas peuvent être associés des composants. Cette association se fait dans les propriétés du projet (menu Projet -> Propriétés). Ces composants apportent au langage des classes traitant un domaine précis. Par exemple gb.db traite les bases de données et gb.qt gère les interactions de l’interface graphiques.

Toutes les fonctions et objets offertent par ces composants sont documentées dans l’aide que l’on peut ouvrir avecn le menu ?->Navigateur d'aide