62 lines
6.0 KiB
HTML
62 lines
6.0 KiB
HTML
<HTML><HEAD>
|
|
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
|
|
</HEAD>
|
|
<BODY>
|
|
<div><H3><b>switch Commandes Internes Tcl</b></H3></div>
|
|
<HR ALIGN="center">
|
|
<div><b>NOM</b></div><br>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">switch - Evalue un parmi plusieurs scripts, dépendant d'une valeur donnée
|
|
</div><br>
|
|
<div><b>SYNTAXE</b></div><br>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;"><b>switch </b>?<i>options</i>?<i> string pattern body </i>?<i>pattern body </i>...? <br>
|
|
<b>switch </b>?<i>options</i>?<i> string </i>{<i>pattern body </i>?<i>pattern body </i>...?} <br>
|
|
</div><br>
|
|
<div><b>DESCRIPTION</b></div><br>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">La commande <b>switch</b> compare son argument <i>string</i> à chacun des arguments <i>pattern</i> dans l'ordre. Dès qu'elle trouve un <i>pattern</i> qui correspond à <i>string</i> elle évalue les argument <i>body</i> suivants en les transmettant récursivement à l'interpréteur Tcl et retourne le résultat de cette évaluation . Si le dernier argument <i>pattern</i> est <b>default</b> alors il correspond à tout. Si aucun argument <i>pattern</i> correspond à <i>string</i> et qu'aucun défaut n'est donné, alors <b>switch</b> retourne une chaîne vide. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Si les arguments initiaux de <b>switch</b> commencent avec <b>-</b> alors ils sont traités comme des options Les options suivantes sont couramment supportées:
|
|
<DL>
|
|
<DT><b>-exact</b></DT><DD>Utilise la correspondance exacte pendant la comparaison de <i>string</i> à un modèle C'est le défaut.
|
|
</DD>
|
|
<DT><br><b>-glob</b>
|
|
</DT><DD>Pendant la comparaison de <i>string</i> aux modèles, utilise une correspondance glob-style (ex. la même qu'implémentée par la commande<b> string match</b>).
|
|
</DD>
|
|
<DT><br><b>-regexp</b>
|
|
</DT><DD>Pendant la comparaison de <i>string</i> aux modèles, utilise la correspondance expression rationelle (comme décrit dans la page de référence<A HREF="150.htm"><b> re_syntax</b></A>).
|
|
</DD>
|
|
<DT><br><b>--</b>
|
|
</DT><DD>Marque la fin des options L'argument suivant sera traité comme <i>string</i> même s'il commence avec un <b>-</b>.
|
|
</DD>
|
|
</DL>
|
|
</div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Deux syntaxes sont fournie pour les arguments<i> pattern</i> et <i>body</i>. Le premier utilise un argument séparé pour chacun des modèles et commandes; cette forme est pratique si des substitutions sont désirées sur un modèle ou une commande. La seconde forme place tous les modèles et les commandes ensemble dans un seul argument; l'argument doit avoir une structure de liste correcte, avec les éléments de la liste étant les modèles et les commandes. La seconde forme facilite la construction de commandes switch multi-ligne, puisque les accolades entourant la liste rendent inutile l'inclusion d'un antislash à la fin de chaque ligne. Comme les arguments <i>pattern</i> sont dans accolades dans la seconde forme, aucunes substitutions de commande ou de variable ne sont effectuée sur ceux-ci; cela rend le comportement de la seconde forme différent de la première forme dans certains cas. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Si un <i>body</i> est spécifié comme "<b>-</b>" cela signifie que le <i>body</i> du modèle suivant doit être aussi utilisé comme le corps pour ce modèle (si le modèle suivant a aussi un corps de "<b>-</b>" alors le corps qui est utilisé après, et ainsi de suite). Cette fonctionnalité rend possible de partager une seul <i>body</i> entre plusieurs modèles. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Attention à l'emplacement des commentaires dans les commandes<b> switch</b> Ils devront être placés seulement <b>dans</b> l'exécution du corps d'un des modèles, et pas mélangés avec les modèles. </div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">Voici quelques exemples de commandes<b> switch</b>: </div>
|
|
<div ALIGN="LEFT" style="margin-left: 102px;"><b>switch abc a - b {format 1} abc {format 2} default {format 3}</b></div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">renverra <b>2</b>, </div>
|
|
<div ALIGN="LEFT" style="margin-left: 102px;"><b>switch -</b><A HREF="152.htm"><b>regexp</b></A><b> aaab {<br>
|
|
</b><b> ^a.*b$ -<br>
|
|
</b><b> b {format 1}<br>
|
|
</b><b> </b><A HREF="129.htm"><b>a*</b></A><b> {format 2.htm}<br>
|
|
</b><b> default {format 3}<br>
|
|
</b><b>}</b></div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">renverra <b>1</b>, et </div>
|
|
<div ALIGN="LEFT" style="margin-left: 102px;"><b>switch xyz {<br>
|
|
</b><b> a<br>
|
|
</b><b> -<br>
|
|
</b><b> b<br>
|
|
</b><b> {<br>
|
|
</b><b> # Placement Correct du Commentaire<br>
|
|
</b><b> format 1<br>
|
|
</b><b> }<br>
|
|
</b><b> </b><A HREF="129.htm"><b>a*</b></A><b><br>
|
|
</b><b> {format 2}<br>
|
|
</b><b> default<br>
|
|
</b><b> {format 3}<br>
|
|
</b><b>}</b></div>
|
|
<div ALIGN="LEFT" style="margin-left: 51px;">renverra <b>3</b> </div><br>
|
|
<div>Dernière révision: 7.0</div>
|
|
<br>
|
|
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A> <A HREF="166.htm"><b>Précédent</b></A> <A HREF="168.htm"><b>Suivant</b></A></div>
|
|
</BODY></HTML>
|