====== lreplace ======
Remplace les éléments d'une liste avec de nouveaux éléments
===== Syntaxe =====
lreplace list first last ?element element ...?
===== Description =====
**lreplace** retourne une nouvelle liste formée en remplaçant un ou plusieurs éléments de //list// avec les arguments //element//. //first// et //last// spécifient le premier et dernier index de l'intervalle d'éléments à remplacer.
0 se réfère au premier élément de la liste, et //end// (ou toutes ses abréviations) peut être employé pour se référer au dernier élément de la liste. Si //list// est vide, alors //first// et //last// sont ignorés. Si //first// est inférieur à zéro, il est considéré se référer au premier élément de la liste.
Pour les listes non-vides, l'élément indiqué par //first// doit exister. Si //last// est inférieur à zéro mais supérieur à //first//, alors tout élément spécifié sera ajouté à la liste. Si //last// est inférieur à //first// alors aucun éléments ne sont effacés; les nouveaux éléments sont simplement insérés avant //first//. Les arguments //element// spécifient zéro ou plusieurs nouveaux arguments à ajouter à la liste à la place de ceux qui ont été effacés. Chaque argument //element// deviendra un élément séparé de la liste. Si aucun argument //element// n'est spécifié, alors les éléments entre //first// et //last// sont simplement effacés.
Si //list// est vide, tous les arguments //element// sont ajoutés à fin de la liste.
===== Exemples =====
Il n'existe pas de fonction [[:tcl:lremove]], mais elle peut être créée simplement:
proc ::lremove {datas needle} {
return [lsearch -all -inline -not -exact $datas $needle]
}
Utilisation:
% set mylist {{A B C} {D E F} {G H I} {J K} L}
% lremove $mylist L
{A B C} {D E F} {G H I} {J K}
% lremove $mylist {D E F}
{A B C} {G H I} {J K} L
===== Voir aussi =====
[[:tcl:list]]
{{tag>tcl Listes}}