APPLICATIONSDIVERS ★ TURBO MAKER LE GENERATEUR DEPROGRAMMES ★

Turbo Maker (Micro-Systemes)Applications Divers
D'habitude, un programme sert à traiter des données : vous lui rentrez quelques valeurs et il vous «crache» des résultats correspondant aux traitements programmés. Imaginez-en un qui, au lieu de donner des résultats, donne un traitement : c'est-à-dire un programme qui fabrique un programme.

C'est ce que nous vous proposons avec Turbo-Maker, un logiciel en Turbo-Pascal qui permet de créer des masques d'écran en source... Turbo Pascal!

Après tout, un programme n'est jamais qu'un fichier contenant un texte un peu particulier, qui répond à certaines règles du langage dans lequel il est écrit. Ce texte peut être soit compris instruction par instruction par un interpréteur (c'est le cas de la plupart des Basic), soit transformé une fois pour toutes en programme exécutable directement par la machine (c'est le cas des compilateurs comme Turbo-Pascal). De toute façon, si l'on respecte la syntaxe du langage, peu importe au compilateur comment (et par qui) a été écrit le texte source. Un programme Pascal peut donc avoir comme résultat de traitement un texte source Pascal qu'il suffit de compiler.

Dans notre cas, Turbo-Maker permet de transformer le dessin d'un masque de saisie, créé sous un éditeur, en une procédure Pascal qui se chargera de la gestion de ce masque.

Imaginons qu'un jour de pluie vous ayez envie d'écrire un programme de carnet d'adresse sur votre ordinateur préféré (si, si, ça arrive...). Après avoir défini tous les champs d'un enregistrement type de votre fichier ainsi que la super-méthode permettant de trier les fiches contenant les numéros de téléphone dont l'inverse de la racine carrée est égal à pi sur huit (!), il faudra penser à la saisie des articles du fichier.

C'est ici qu'un générateur de masque d'écran peut vous faire gagner du temps. Il vous suffit de dessiner sous un éditeur votre grille de saisie en marquant les zones correspondant aux variables avec nom, type et longueur. Ce sera votre unique travail, le reste (la partie la plus fastidieuse) étant pris entièrement en charge par le programme.

Turbo-Maker analysera votre masque d'écran (fig. 1) en reconnaissant une zone de saisie de variable par un crochet ouvert ([) suivi du nom de la variable et d'options. La variable sera enregistrée lorsqu'il aura reconnu le crochet fermant (]). Le nombre de caractères entre ces deux crochets déterminera la longueur de la zone réservée à la saisie de la variable.

Les variables sont considérées par défaut comme étant des variables de type chaîne de caractères (STRING(x) où x est le nombre de caractères compté entre le début et la fin de la zone de saisie). Cependant, si vous désirez utiliser des variables de type INTEGER ou REAL, vous pouvez le spécifier en faisant suivre le nom de la variable par « /i » pour un integer, et «/r» pour un réel. Le programme se chargera de la gestion de ces types. Toutefois, il est conseillé de donner une longueur au moins égale à huit caractères pour une variable réelle, de façon à ne perdre aucune information.


Fig. 1. - Exemple de masque.

Arrivé en fin d'écran (fin de la 24e ligne de votre fichier texte), s'il n'a pas découvert d'erreur, Turbo-Maker vous demandera le nom que vous voulez donner à la procédure. Quelques secondes plus tard, un fichier contenant le texte de la procédure sera créé (fig. 2).

La procédure gérera le masque : on ne pourra rentrer des données que là où il y a des zones marquées ; le passage d'une zone à l'autre sera automatique. Impossible de saccager à grands coups de RETURN ou DEL un bel écran bien propre...

Il ne vous restera plus qu'à l'intégrer dans votre programme et à faire un appel de la procédure pour que la saisie soit prise en charge proprement et sans contrainte (pour le programmeur...).

Turbo-Maker génère un RECORD (enregistrement) correspondant à la totalité des variables que vous avez définies. Un appel du masque se fait donc de la façon suivante :

* nom-procédure (variable-type-généré) ;

où « nom-procédure » est le nom que vous avez décidé de donner au masque, et « variable-type-généré » est du type contenant toutes les variables du masque. Le nom du RECORD créé par Turbo-Maker est « V » suivi de « nom-procédure ».

Maintenant que nous
avons vu comment utiliser ce programme, voyons un peu sa structure et son fonctionnement. La boucle principale de Turbo-Maker demande le nom du fichier où se trouve le texte de l'écran, puis appelle la procédure ANAL-ECRAN qui se charge de l'analyse du texte et des variables ; à ce niveau, les zones de saisie sont reconnues et toutes les informations les concernant sont rangées dans une table : ATVAR, qui contient le nom, le type, la longueur et les coordonnées des variables. Les zones ne contenant que du texte à afficher sont décrites dans la table TTex et seront utilisées plus tard.

Lors de ce traitement, ANAL-ECRAN peut détecter les erreurs dues à de mauvaises définitions des zones de saisie. Par exemple, si vous ouvrez un crochet sans le refermer, ou s'il n'y a pas de nom entre deux crochets, ces erreurs arrêtent l'analyse de l'écran. L'explication de l'erreur correspondante est affichée. Il faut alors reprendre et modifier le texte source sous éditeur pour le rendre correct, et recommencer le traitement.

L'analyse de l'écran achevée, le programme principal commence la génération de la procédure PASCAL. On vous demande alors le nom que vous comptez donner à votre procédure masque ; le nom du fichier de sortie sera le même (avec « .pas » en plus). La procédure Make-Turbo est alors activée, elle est composée de trois procédures spécialisées :

- Make-Var qui s'occupe de la définition des types et des variables, d'écrire dans le fichier de sortie l'en-tête de la procédure et certaines instructions constantes à toutes les procédures générées.

- Make-Gestion qui crée une procédure Pascal (Ch-Zon) où les informations concernant les variables sont décrites suivant les types, longueur, etc. C'est ce morceau de programme qui contient tous les paramètres nécessaires à la saisie sur votre masque. Il effectue les conversions des caractères qui sont saisis en réels ou en entiers si le type des variables le demande.

- Make-Text qui écrit à l'aide de WRITELN le texte de l'écran et qui contient les instructions permettant la saisie des données et les mouvements du curseur.

Ici, quelques détails sont nécessaires. Ces instructions sont, à quelques détails près, toujours les mêmes, quels que soient vos écrans. Elles permettent d'enregistrer les caractères qui sont tapés au clavier dans un buffer, le nettoyage des zones de l'écran, le déplacement du curseur et la gestion des touches spéciales (BACKSPACE pour effacer des caractères dans une zone, RETURN pour passer à la zone suivante en mode rouleau, ESCAPE pour signifier que la saisie est terminée). Seules, ces trois touches de fonction sont reconnues par le programme ; toutes les autres n'ont aucune action. Ce bloc d'instructions est valable pour tous les écrans, c'est lui qui permet une génération facile des masques, car quasiment toutes les informations spécifiques à un écran particulier sont regroupées dans la procédure Ch-Zon.

Ces trois procédures exécutées, le fichier objet est fermé. Il contient alors votre « morceau de programme » prêt à être intégré dans votre application.

Attention, la procédure générée ne peut pas fonctionner toute seule (d'ailleurs ça n'aurait aucun intérêt...), il est nécessaire qu'elle soit appelée dans un programme Pascal. Vous verrez que le compilateur ne fera pas de différence entre le programme que VOUS avez tapé et le programme qui a été fabriqué par Turbo-Maker...

N'ayez aucune crainte, l'algorithme utilisé dans la gestion du masque d'écran garantit qu'aucune erreur de compilation ne peut être due à la procédure générée.....

Cependant, pour éviter le moindre problème, quelques petites contraintes sont à respecter ; par exemple, il ne faut pas donner de nom réservé par PASCAL à une procédure. Il est également conseillé d'écrire les noms de variables seulement avec des lettres et des chiffres. Deux variables qui auraient le même nom poseraient quelques petits problèmes. Comme en Turbo-Pascal, si vous utilisez une apostrophe ('), neutralisez-la en en mettant deux. En tant que programmeur averti, nous sommes sûrs que vous ne commettrez jamais ce genre d'étourderies !

Le listing du programme, écrit en Turbo-Pascal, est largement commenté. De plus, un nombre restreint de fonctions spécifiques au Turbo sont utilisées (fig. 3). Ceci permet l'écriture sous un autre Pascal sans problème. Il est également possible d'améliorer ce programme en intégrant, par exemple, des messages spécifiques à chaque zone de saisie, ou en décidant de ne pas initialiser les variables à zéro mais à une autre valeur voulue dès le dessin de l'écran. Il est très facile de modifier le nombre de variables autorisées sur un écran en changeant la valeur de ATVar (20 actuellement).

Libre cours est donné à votre imagination (le programme est loin d'être parfait) pour améliorer Turbo-Marker et pour le rendre plus performant, sachant qu'écrire un programme fabriquant des programmes n'est pas plus difficile qu'autre chose...

MS

★ PUBLISHER: Micro-Systemes
★ ANNÉE: 1987
★ CONFIG: Turbo Pascal
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Laurent DUMONT

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
  » Turbo  Maker    (Micro-Systemes)    FRENCH    LISTINGDATE: 2025-01-02
DL: 20
TYPE: PDF
SiZE: 4890Ko
NOTE: 4 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Spritemaker (Amstrad Computer User)
» Applications » Intromaker (Ivan Cvetkovič)
» Applications » NWC Demomaker
» Applications » Datamaker (Amstrad Action)
» Applications » Times Maker (CPC Amstrad International)
» Applications » Pagemaker Deluxe v4
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.73-desktop/c
Page créée en 160 millisecondes et consultée 68 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.