Les listes
Soit la liste suivante:
set toto "un" "deux" "trois"
Nous pouvons tout aussi bien la déclarer comme ceci, cela produit le même résultat.
set toto [list "un" "deux" "trois"]
Personnellement je préfère la déclarer comme la 2eme façon, je la trouve bien plus compréhensible et plus lisible.
Pour résumer très simplement l'utilisation des liste, voici diverses astuces pour la gestion des listes :
Ajouter une valeur à la liste
Pour ajouter une nouvelle valeur à la fin de la liste
Ecrivez ceci :
lappend toto "ma nouvelle valeur"
Editer une valeur en connaissant son index
Utilisez la commande lset
Dans notre exemple, pour remplacer "deux" par "dix, écrivez ceci :
lset toto 1 "dix"
Enlever une valeur par sa valeur dans la liste
Ecrivez ceci :
set idx [lsearch $toto "deux"] set toto [lreplace $toto $idx $idx]
Enlever une valeur par son index
Dans notre exemple si je veux retirer la chaine de caractère "deux" voici comment faire
set toto [lreplace $toto 1 1]
trier une liste par ordre alphabétique
Utilisez la commande lsort avec l'option -dictionnary comme ceci :
set a [list "scale" "tk_optionMenu" "menubutton" "scrollbar" "notebook" "panedwindow" "progressbar" "label"] set mylist [lsort -dictionary $a]
Enlever des doublons en triant par ordre alphabetique
Soit la liste suivante :
set maliste [list bonjour bonjour aurevoir tchao salut salut]
Pour enlever tous les doublons, il suffit de créer une nouvelle liste en utilisant l'opion -unique comme ceci :
set nouvelleliste [lsort -unique $maliste] puts $nouvelleliste
le résultat sera affiché comme ceci :
aurevoir bonjour tchao salut
enlever es doublons en conservant l'ordre de la liste
Soit la liste suivante :
set l {this that when what when how}
Pour enlever tous les doublons en gardant l'ordre non alphabétique, il suffit d'écrire ce code :
foreach element $l {dict set tmp $element 1} set unique [dict keys $tmp] puts $unique