Tool Command Language
Expressions Tcl : expr
• `A la mode C (int et doubles) • Substitution de commandes et de variables a l’interieur des expressions • ´Evalu´ees par expr, if, while, for.
set b 5 → 5 expr ($b*4) – 3 → 17 expr $b <= 2 → 0 expr 6 * cos(2*$b) → -5.03443 expr {$b * [fac 4]} → 120
Etudier a quel moment sont faites les substitutions dans la sequence :
set b \$a set a 4 expr $b * 2
Introduction Tcl ´Etendre Tcl 9
Tcl Exemple comment´e
set i 0 while {$i < 10} { puts « $i au carr´e = [expr $i*$i] » incr i }
• 2 commandes au 1er niveau : set et while • 2 arguments pour while : condition et corps • attention a l’espace entre } et { • ´evaluation automatique par while de la condition → pas de expr dans ce cas.
Introduction Tcl Etendre Tcl
Tcl Tableaux Tcl
Les tableaux Tcl sont associatifs : les indices sont des chaınes.
set x(fred) 44 → 44 set x(2) [expr $x(fred) + 6] → 50 array names x → fred 2
On peut simuler des tableaux `a plusieurs dimensions :
set a(1,1) 10 → 10 set a(1,2) 11 → 11 array names a → 1,1 1,2
Introduction Tcl ´Etendre Tcl 11
Tcl Operateurs sur les chaınes de caracteres
Certains operateurs fonctionnent avec des chaınes de caracteres :
set a Bill → Bill expr {$a < « Anne »} → 0
• <, >, <=, >=, == et != fonctionnent avec des chaınes • Attention aux chaınes qui ressemblent `a des nombres. • On peut alors utiliser la fonction string compare.
Tcl Listes
• Zero ou plusieurs elements separes par des espaces : rouge vert bleu
• Accolades et backslashs pour grouper : un\ mot deux trois
• Commandes sur les listes : concat lindex llength lsearch foreach linsert lrange lsort lappend list lreplace
• Les indices commencent `a 0. end repr´esente le dernier ´el´ement.
Exemples :
lindex « a b {c d e} f » 2 → c d e lsort {rouge vert bleu} → bleu rouge vert
Introduction Tcl ´Etendre Tcl 13
Tcl Listes et commandes
• une commande est une liste • eval permet d’´evaluer une liste comme une commande • pour creer une commande a evaluer, utiliser la commande list
button .b -text Reset -command {set x $initValue}
initValue est lue quand le bouton est utilise
… -command « set x $initValue »
Erreur si initValue vaut“New York”(2 mots → set x New York) … -command [list set x $initValue]
Toujours correct.
Tcl Manipulation de chaınes
• Commandes de manipulation de chaˆınes de caract`eres : regexp format split string regsub scan join
• sous-commandes de string : compare first last index length match range toupper tolower trim trimleft trimright
• tous les index commencent `a 0, end repr´esente le dernier caract`ere.
Introduction