Parce que lorsque j'ai débuté en Tcl/Tk, elles m'ont posé quelques problèmes :
Le nom de la liste n'est utilisé que:
Dans tous les autres cas, on travaille sur le contenu de la liste.
linsert, lreplace et lsort ne modifient pas la liste existante mais retournent une liste modifiée.
⇑#!/usr/bin/tclsh #------------------------------------------------------------------------------- # #------------------------------------------------------------------------------- # Le nom de la liste n'est utilisé que: # - lors de son affectation par set # - lors de l'ajout par lappend # - lors de la modification par lset # Dans tous les autres cas, on travaille sur le contenu de la liste # # Attention linsert, lreplace et lsort ne modifient pas la liste existante # mais retournent une liste modifiée set Unites [ list "un" "deux" "quatre" "cinq" "six" "sept" "8" ] puts "La liste Unites contient : $Unites" puts "" # llength retourne le nombre d'éléments de la liste set NbElements [ llength $Unites ] puts "Elle contient $NbElements éléments." # lindex retourne l'élément à l'index donné. Attention commence à 0 puts "Leur numérotation commence à 0, on a donc:" puts " - élément 0: [ lindex $Unites 0 ] " puts " - élément 3: [ lindex $Unites 3 ] " puts "" # lsearch retouren la position d'un élément set Position [ lsearch $Unites "quatre" ] puts "L'élément \"quatre\" se trouve en position $Position" puts "" set Position [ lsearch $Unites "zut" ] puts "L'élément \"zut\" se trouve en position $Position" puts "" # linsert retourne la liste modifiée mais ne touche pas la liste existante # Si on veut modifier la liste existante, il faut la réafectée puts "On ajoute \"trois\"" set Unites [ linsert $Unites 2 "trois" ] puts "La liste Unites contient maintenant: $Unites" puts "" # lappend ajoute en fin de liste existante puts "On ajoute \"neuf\"" lappend Unites "9" puts "La liste Unites contient maintenant: $Unites" puts "" # lreplace retourne la liste modifiée mais ne touche pas la liste existante # Si on veut modifier la liste existante, il faut la réafectée puts "Oops, on corrige" set Unites [ lreplace $Unites 7 8 "huit" "noeuf" ] puts "La liste Unites contient maintenant: $Unites" puts "" # lset modifie la liste existante puts "Re oops, on re-corrige" lset Unites 8 "neuf" puts "La liste Unites contient maintenant: $Unites" puts "" set Dizaines [ list "dix" "vingt" "trente" "quarante" "cinquante" "soixante" \ "soixante dix" "quatre-vingt" "quatre-vingt dix" ] puts "La liste Dizaines contient : $Dizaines" puts "" # join met bout à bout les élements de la liste en les séparant par le # séparateur fourni puts "Si on joint les éléments par un \"-\", on obtient:" set Texte [ join $Dizaines "-" ] puts $Texte puts "" # split convertit une chaîne en une liste en utilisant le séparateur # fourni comme délimiteur d'éléments puts "Si maintenant on sépare ce texte sur les \"-\", on obtient:" puts [ split $Texte "-" ] puts "Observez ce que sont devenus quatre-vingt et quatre-vingt dix" puts "" # concat met bout à bout les listes set Cumul [ concat $Unites $Dizaines ] puts "Mettons nos deux listes bout à bout (concaténation)." puts "On obtient : $Cumul" puts "alors que les listes originales n'ont pas bougées" puts "Unites: $Unites" puts "Dizaines: $Dizaines" puts "" # lsort trie la liste en fonction des options fournies # Si on veut modifier la liste existante, il faut la réafectée puts "Trions notre liste Unites en ascii de façon décroissante" set Triee [ lsort -ascii -decreasing $Unites ] puts "Triee: $Triee" puts "Unites: $Unites" puts ""⇑
Cette documentation est mise à disposition sous licence No Obligation License, soit “Aucune obligation pour vous. Aucune obligation pour moi.”
⇑⇑
Date | Version | Auteur | Description des modifications |
---|---|---|---|
22 octobre 2006 | 1.0.0 | Alain JAFFRE | Première version publique. |