Tutoriel Tkcon

 

Document PDF téléchargeable http://wfr.tcl.tk/fichiers/pub/CoursTkCon.pdf


auteur : David Cobac 21 janvier 2003


1 Introduction


tkcon est une console (une application permettant de dialoguer avec l'ordinateur) en langage Tcl/Tk. Elle permet notamment d'effectuer les opérations habituelles de maintenance sur les fichiers (création, destruction etc.) mais surtout tkcon permet au programmeur Tcl/Tk de tester les commandes du langage dans un mode interactif. tkcon est actuellement développé par Jeffrey Hobbs et le site officiel du logiciel est http://tkcon.sourceforge.net. On trouvera aussi sur http://wiki.tcl.tk quelques informations sur son sujet. La version utilisée pour ce document est la version 2.3.


2 Installation


tkcon nécessite l'installation des langages Tcl et Tk. Avec la distribution ActiveTcl (téléchargeable gratuitement sur le site http://www.activestate.com, tkcon est installé automatiquement dans le répertoire C:\Tcl\bin sous windows. L'appel de tkconse fait en interprétant le script tkcon.tcl, c'est-à-dire en invoquant la commande wish tkcon.tcl, normalement sous Windows, double-cliquer sur l'icône doit suffire à lancer le programme. Autrement dit tkcon n'est rien d'autre qu'une application Tcl/Tk qui embarque un interpréteur.


3 La fenêtre



3.1 Screenshot


La fenêtre principale de l'application

L'image représente l'application au démarrage. La première ligne rend compte de la réussite du chargement du fichier contenant l'historique des commandes déjà tapées dans les sessions antérieures ; la deuxième rend compte de l'activation de la fenêtre elle-même et indique les versions de Tcl et de Tk utilisées, ici la version 8.3.4. Ensuite vient la première ligne de saisie, ici numérotée 49 car l'historique a indiqué que la précédente ligne était numérotée 48 (si c'est la première fois que vous utilisez tkcon, la ligne sera numérotée 1). Ce numéro est précédé de (david) qui est simplement le dernier répertoire dans l'écriture du chemin complet qui y mène ; en effet nous verrons qu'actuellement nous sommes dans le répertoire /home/david (analogue linuxien du répertoire c:\windows\profile\david sous windows). Pour finir, le symbole % indique le début de la ligne de saisie : on tapera les commandes après ce symbole.


3.2 Les menus


Les menus de tkcon ne sont pas essentiels dans un premier temps. On peut donc très bien passer cette section et y revenir plus tard.

3.2.1 File

Le menu File

Le menu File (fichier) permet : Load File : le chargement d'un fichier donc son exécution si c'est un script défini de manière solitaire ou le chargement de procédures/fonctions s'il s'agit d'un fichier contenant une bibliothèque de fonctions ; Save ... : l'enregistrement de tout ou d'une partie des résultats obtenus lors de votre session sous tkcon; Quit : l'arrêt de tkcon et de tous les processus lui étant liés.

3.2.2 Console

Le menu Console

Le menu Console permet de créer et de détruire des consoles esclaves de la console principale (celle qui s'ouvre à l'appel de l'application). Main Console n'est pas un bouton mais un affichage indiquant que vous travaillez avec la console principale (initiale) ; New Console permet de créer une console esclave de la console courante ; Close Console permet de quitter (fermer) la console courante ; Clear Console permet d'effacer toutes les lignes présentes dans la console et de commencer une nouvelle ligne de saisie en haut de la console ; Make Xauth Secure ... Attach to ... permet de lier la console courante à différents éléments : à un interpréteur existant déjà, comme par exemple une application Tcl/Tk qui est déjà active ; à un espace de nom listé dans le sous-menu ; à une connexion (socket) ; à un affichage différent de l'affichage courant (cf. serveur d'affichage).


Le menu Attach to ...


3.2.3 Edit

Le menu Edit (Editer) contient les habituels << Couper--Copier--Coller >>. Ce menu offre aussi une commande de recherche (Find) qui permet de trouver des séquences de mots dans la console, les résultats sont alors en surbrillance. Notons que la recherche peut se faire par l'intermédiaire d'expressions régulières avancées pour permettre des recherches plus élaborées.


Le menu Edit


3.2.4 Interp

Le menu Interp

Le menu Interp (Interpréteur) propose quelques commandes pour gérer l'interpréteur embarqué dans la console courante : SLAVE : slave n'est pas un bouton mais un affichage indiquant que l'interpréteur actuellement en cours s'appelle slave ; Show Last Error permet d'afficher une fenêtre affichant le code complet de la dernière erreur (cette fenêtre est aussi accessible par hyperlien dans la console elle-même en cliquant sur l'erreur par la console) ; Packages permet d'afficher toutes les extensions du langages qui sont actuellement disponibles ; Checkpoint State insère une marque à partir de la ligne actuelle en annulant toute marque précédente, cette commande remet à zéro la commande traçant l'existence des variables et des procédures pour cette fonctionnalité ; Revert State permet de revenir à l'état avant la dernière marque ... ? ; View State affiche une fenêtre permettant de visualiser les procédures et variables définies dans l'interpréteur depuis la dernière marque ; Send tkcon Commands ... ?

3.2.5 Prefs

Le menu Prefs

Le menu Prefs (préférences) propose de changer quelques paramètres de la console, on notera le << calculator mode >> qui permet de taper des formules mathématiques dans la console sans passer par la commande expr. Les deux premières options permettent la coloration syntaxique des accolades et des commandes. Sélectionner Hot Errors permet de créer un hyperlien sur les erreurs vers une fenêtre montrant le code complet de l'erreur. Les trois dernières commandes permettent de personnaliser l'affichage de la fenêtre avec la possibilité de ne pas afficher les barres de menus et d'état, et celle de placer différemment l’ascenseur.

3.2.6 History

Le menu History (historique) affiche les dernières commandes saisies dans la console, on peut évidemment sélectionner une commande de l'historique pour la ré-évaluer dans la console.


Le menu History



4 Les premières commandes



4.1 Les commandes pour naviguer dans l'arborescence


La navigation du système de fichiers se fait évidemment grâce aux commandes Tcl : la commande pwd (Print Working Directory) renvoie le nom complet du répertoire actif ; la commande cd (Change Directory) permet de changer de répertoire, le nouveau répertoire étant en argument ; en l'absence de tout argument le changement s'effectue vers le répertoire personnel de l'utilisateur ; la commande dir (DIRectory) permet de lister le contenu du répertoire actif ; la commande glob renvoie la liste de tous les fichiers et sous-répertoires du répertoire actif satisfaisant un certain motif passé en argument. La liste n'est évidemment pas complète puisque l'on peut ajouter notamment toutes les commandes assujetties à la commande file comme par exemple file size qui, prenant en argument le nom d'un fichier, renvoie sa taille en octets. Voici un exemple de session tkcon utilisant ces commandes :

 (david) 50 % pwd
 /home/david
 (david) 51 % cd /travail/david/tcltk/Mesapps/
 (Mesapps) 52 % dir
 .:
 MesLibs            TkBM               TkD                TkDivPolynomes     TkDiviseurs        TkDvips            TkEdit
 TkEtoile           TkEuclide          TkFEF              TkFEF-1.0.tcl ~    TkFractales        TkHorloge          TkLanceDe
 TkMel              TkMultPolynomes    TkParam            TkSacha            TkSelectCouleur    TkStat1var         TkVisuImages
 TkVoyelles         Tk_Pres_CD.tcl     collatz.tcl        editeur_bis.tcl ~  gestion_notes.tcl
 (Mesapps) 53 % file size gestion_notes.tcl
 5899
 (Mesapps) 54 % glob Tk
 no files matched glob pattern "Tk"
 (Mesapps) 55 % glob Tk*
 TkD TkBM TkMultPolynomes TkStat1var TkFEF TkMel TkLanceDe TkSelectCouleur TkEdit TkEtoile TkVisuImages TkDiviseurs TkVoyelles
 TkEuclide TkDivPolynomes Tk_Pres_CD.tcl TkDvips TkParam TkSacha TkHorloge TkFractales {TkFEF-1.0.tcl ~}
 (Mesapps) 56 % glob Tk*s
 TkMultPolynomes TkVisuImages TkDiviseurs TkVoyelles TkDivPolynomes TkDvips TkFractales
 (Mesapps) 57 %

4.2 Quelques astuces


Toutes les commandes déjà saisies (mais en nombre limitée tout de même) sont entreposées dans l'historique (cf. menu History) mais on peut les rappeler simplement en utilisant les touches << Haut >> et << Bas >> du pavé de flèches. Il est possible de faciliter la saisie d'une commande car tkcon les connaissant peut compléter automatiquement ce qui a déjà été écrit en appuyant sur la touche de tabulation, cette possibilité s'applique aussi à l'arborescence de l'ordinateur. Dans le cas où plusieurs complétions sont possibles, tkcon propose tout simplement toutes les possibilités. La commande history clear permet d'effacer l'historique, le numéro de la ligne suivante devient 2 (la ligne 1 étant la commande d'effacement) ; dans la même famille de commandes, citons history keep qui prend en argument un nombre qui sera le nombre de commandes à conserver dans l'historique. Cliquer droit sur la zone de saisie permet de faire apparaître un menu popup identique à celui de la barre de menu. Fonctionnalité très utile si on a désactivé la barre de menu dans le menu Prefs.


4.3 Les commandes pour tester un programme


L'intérêt majeur de tkcon est qu'il permet de tester les commandes des langages Tcl et Tk. Ainsi on peut se familiariser sans effort avec de nouvelles commandes. Nous verrons comment on peut aussi utiliser tkcon pour tester nos applications en cours de développement. Ce mode de fonctionnement interactif permet de comprendre que les procédures agissent sur les variables et changent éventuellement l'état global mais renvoient parfois un résultat. Ainsi certaines procédures en Tclsont de vraies fonctions qui ne font que renvoyer un résultat alors que d'autres effectuent une action en changeant l'état global. Par exemple la simple commande set peut être utilisée de manière très différente comme le montre l'exemple suivant :

 (david) 64 % set i
 can't read "i": no such variable
 (david) 65 % set i 1
 1
 (david) 66 % set i
 1
 (david) 67 % set j $i
 1
 (david) 68 % set k 2
 2
 (david) 69 % seJL

Catégorie Tutoriel