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# 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