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


  Répondre   Avertir
#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]
  Répondre   Avertir
#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.
  Répondre   Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)