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 du binaire 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

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"

 

.

.

 

.

 

 

 

 

Retour au sommaire TCL