Tri de tableaux
#1
Question qui m'a été posée aujourd'hui: comment trier un tableau en tcl?

Voici la réponse que j'ai trouvée:

tcl
set memberlist [array get a]
foreach {key value} $memberlist {lappend unsortedlist [list $key $value]}
set sortedlist [lsort -index 1 $unsortedlist]
# -index 1 trie par valeur plutôt que par clés
foreach pair $sortedlist {
   set key [lindex $pair 0]
   set value [lindex $pair 1]
   puts "$key : $value"
}
# renvoit la liste des éléments, triée par valeurs

zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
#2
Merci beaucoup.. donc dans cette example "a" est une variable de type array comme par ex:

array set a {
cs-asm "www.site.com"
cs-80c51 "www.site2.com"
cs-php "www.site3.com"
s-eggdrop "www.eggdrop.fr"
}


Dans l'example donné, on affiche le tableau trier...
la key : s-eggdrop par ex suivie de sa valeur www.eggdrop.fr

NB: pour ma part, j'ai remplacer le trie par l'option par defaut -ascii
set sortedlist [lsort -ascii $unsortedlist]
#3
Sans l'option -index, les sous-listes ne sont pas considérées et tu tries chaque élément séparément. Tu vas mélanger les paires de ton array.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.


Forum Jump:


Users browsing this thread: 1 Guest(s)