Langage tcl › Tuto et astuces Tcl

Sur cette page vous trouverez différentes astuces de programmation pour Tcl.

Comment faire pour :

Récupérer le nom d'utilisateur

Pour récupérer le nom d'utilisateur de la session sous linux voici comment faire :

if {[info exists ::env(USER)]} {
	puts "$::env(USER)"
	}

le nom d'utilisateur est contenu dans la variable ::env(USER)

Une autre solution consiste à écrire :

puts [info hostname]

Utiliser des images dans un sous répertoire

Si vous avez des images dans un répertoire  (IMG par exemple) contenu dans un sous répertoire où se situe votre application, et que vous voulez y accéder, il vous faut utiliser le chemin relatif par exemple :

image create photo monimage -file \
"./IMG/contact.png"

L'astuce réside dans le point avant l'antislash.

Récupérer la liste des paquets Tcl utilisés

Ecrire :

puts $::tcl_pkgPath

vous renverra :

/usr/local/lib/tcltk /usr/local/share/tcltk
/usr/lib/tcltk/x86_64-linux-gnu
/usr/lib/tcltk /usr/share/tcltk 
/usr/lib/tcltk/tcl8.6 /usr/lib

Récupérer la version de l'interpreteur tcl

Ecrire :

puts [info library]

vous renverra :

/usr/share/tcltk/tcl8.6

Récupérer le nom du binaire qui exécute le script

Ecrire :

puts [info nameofexecutable]

vous renverra :

/usr/bin/wish

Lister toutes les polices de caractères de votre systeme

Ecrire :

puts [font families]

vous reverra toutes une liste de toutes les polices présentes sur votre système.

Lister tous les fichiers et dossiers d'un répertoire

Ecrire :

set dir [glob -directory \
"/home/utilisateur/" *] foreach b $dir { puts $b }

Arrondir un nombre

Pour arrondir un nombre à deux chiffres après la virgule, nous serions tenté d'utiliser la commande ROUND.

Et bien non, il suffit d'utiliser la commande FORMAT comme ceci :

[format "%.2f" $mavariable]

exemple :

set a 1.26465123468496546516798
set b [format "%.2f" $a]
puts $b

renverra le résultat :

1.26

Récupérer le repertoire utilisateur

Le répertoire utilisateur est contenu dans une variable de type Array.

Pour récupérer le fichier toto.txt dans le répertoire /home/user, écrivez ceci :

 puts "$::env(HOME)/toto.txt"

 

passer des arguments a un script tcl

Il faut savoir que passer des arguments a un script tcl s'ecrit sous la forme suivante :

wish monscript.tcl argument1 argument2 etc...

Nous n'allond pas decrire le fontionnement internet mais juste pour comprendre un peu comment cela fonctionne, tcl utilise 3 variables :

  • '$ argv0' : le nom du script execute

  • '$ argc' : Le nombre d'arguments passes
  • '$ argv' : La liste des arguments

    Ceci etant acqui, nous allons ecrire le script suivant :
# condition if si aucun argument n'est passe on ne fait aucune action
if {$argc > 0} {
# argv0 contient le nom du script
puts "Nom du script: $argv0"
# argc contient le nombre d'argument passe
puts "Total du nombre d'arguments: $argc"
# argv contient la liste arguments
puts "La liste des arguments est: $argv"
# Affiche le premier argument de la liste
puts "Le premier argument est [lindex $argv 0]"
}

Enregistrez le sous le nom ex.tcl par exemple puis executons le dans un terminal avec cette commande:

wish ex.tcl ONE 2 3

Voici le resultat :

Nom du script: ex.tcl
Total du nombre d'arguments: 3
La liste des arguments est: ONE 2 3
Le premier argument est ONE

 

 

  

Retour au sommaire TCL