projman/hlp/fr/tcl/string.htm

132 lines
16 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<HTML><HEAD>
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
</HEAD>
<BODY>
<div><H3><b>string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commandes Internes Tcl</b></H3></div>
<HR ALIGN="center">
<div><b>NOM</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">string - Manipulation des cha<68>nes <br>
</div><br>
<div><b>SYNTAXE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><b>string </b><i>option arg </i>?<i>arg ...?</i>&nbsp; <br>
</div><br>
<div><b>DESCRIPTION</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">R<EFBFBD>alise une parmi plusieurs op<6F>rations sur les cha<68>nes, d<>pendant d' <i>option</i>. Les <i>option</i>s l<>gales (qui peuvent <20>tre abr<62>g<EFBFBD>es) sont:
<DL>
<DT><b>string bytelength </b><i>string</i>
</DT><DD>Renvoie une cha<68>ne d<>cimale donnant le nombre d'octets utilis<69>s pour repr<70>senter <i>string</i> en m<>moire. Comme UTF-8 utilise de un <20> trois octets pour repr<70>senter les caract<63>res Unicode, la longueur en octets ne sera pas la m<>me en g<>n<EFBFBD>ral que la longueur des caract<63>res. Les cas o<> un script g<>re la longueur en octets sont rares. Dans presque tous les cas, vous devrez utiliser l'op<6F>ration<b> string length</b>. Referez-vous <20> la page de manuel <A HREF="85.htm"><b>Tcl_NumUtfChars</b></A> pour plus de d<>tails sur la repr<70>sentation UTF-8.
</DD>
<DT><br><b>string compare</b> ?<b>-nocase</b>? ?<b>-length int</b>? <i>string1 string2</i>
</DT><DD>R<EFBFBD>alise une comparaison caract<63>re-par-caract<63>re des cha<68>nes <i>string1</i> et <i>string2</i>. Renvoie -1, 0, ou 1, d<>pendant de si <i>string1</i> est lexicographiquement inf<6E>rieure <20>, <20>gale <20>, ou sup<75>rieure <20> <i>string2</i>. Si <b>-length</b> est sp<73>cifi<66>e, alors seulement les <i>length</i> premiers caract<63>res sont utilis<69>s dans la comparaison. Si <b>-length</b> est n<>gatif, elle est ignor<6F>e. Si <b>-nocase</b> est sp<73>cifi<66>, alors les cha<68>nes sont compar<61>es sans tenir compte de la casse.
</DD>
<DT><br><b>string equal</b> ?<b>-nocase</b>? ?<b>-length int</b>? <i>string1 string2</i>
</DT><DD>R<EFBFBD>alise une comparaison caract<63>re-par-caract<63>re des cha<68>nes <i>string1</i> et <i>string2</i>. Renvoie 1 si <i>string1</i> et <i>string2</i> sont identiques, ou 0 sinon. Si <b>-length</b> est sp<73>cifi<66>e, alors seulement les <i>length</i> premiers caract<63>res sont utilis<69>s dans la comparaison Si <b>-length</b> est n<>gatif, elle est ignor<6F>e Si <b>-nocase</b> est sp<73>cifi<66>, alors la cha<68>nes sont compar<61>es sans tenir compte de la casse.
</DD>
<DT><br><b>string first </b><i>string1 string2</i> ?<i>startIndex</i>?
</DT><DD>Recherche dans <i>string2</i> la s<>quence de caract<63>res qui correspond exactement au caract<63>res de <i>string1</i>. Si trouv<75>, retourne l' index du premier caract<63>re de la premi<6D>re correspondance dans <i>string2</i>. Sinon, retourne -1. Si <i>startIndex</i> est sp<73>cifi<66> (dans toutes formes accept<70>es par la m<>thode <b>index</b>), alors la recherche est forc<72>e de commencer avec le caract<63>re de <i>string2</i> sp<73>cifi<66> par l'index. Par exemple,
<br>&nbsp;&nbsp;&nbsp;&nbsp;<b>string first a 0a23456789abcdef 5</b>
<br>renverra <b>10</b>, mais
<br>&nbsp;&nbsp;&nbsp;&nbsp;<b>string first a 0123456789abcdef 11</b>
<br>renverra <b>-1</b>.
</DD>
<DT><br><b>string index </b><i>string charIndex</i></DT><DD>Renvoie le <i>charIndex</i> i<>me caract<63>re de l'argument<i> string</i> Un <i>charIndex</i> de 0 corresponds au premier caract<63>re de la cha<68>ne <i>charIndex</i> peut <20>tre sp<73>cifi<66> comme suit:
<br>&nbsp;&nbsp;&nbsp;<i>integer</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Le caract<63>re sp<73>cifi<66> <20> cet index int<6E>gral <br>&nbsp;&nbsp;&nbsp;<b>end</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Le dernier caract<63>re de la cha<68>ne.
<br>&nbsp;&nbsp;<b>end-</b><i>integer</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Le dernier caract<63>re de la cha<68>ne moins l'offset entier sp<73>cifi<66> (ex. <b>end-1</b> se ref<65>re <20> &quot;c&quot; dans &quot;abcd&quot;).
<br>Si <i>charIndex</i> est inf<6E>rieur <20> 0 ou sup<75>rieur <20> ou <20>gal <20> la longueur de la cha<68>ne alors une cha<68>ne vide est renvoy<6F>e.
</DD>
<DT><br><b>string is </b><i>class</i> ?<b>-strict</b>? ?<b>-failindex </b><i>varname</i>? <i>string</i>
</DT><DD>Renvoie 1 si <i>string</i> est un membre valide de la classe de caract<63>re sp<73>cifi<66>e, retourne 0 autrement Si <b>-strict</b> est sp<73>cifi<66>, alors une cha<68>ne vide retourne 0, autrement une cha<68>ne vide renverra 1 avec toute classe. Si <b>-failindex</b> est sp<73>cifi<66>, alors si la fonction retourne 0, l'index dans la cha<68>ne o<> la classe n'est plus valide sera stock<63> dans la variable d<>sign<67>e par <i>varname</i>. <i>varname</i> ne sera pas fix<69>e si la fonction retourne 1. Les classes de caract<63>re suivantes sont reconnues (le nom de classe peut <20>tre abr<62>g<EFBFBD>):</DD>
</DL>
</div>
<div ALIGN="LEFT" style="margin-left: 150px;"><b>alnum</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re alphab<61>tique ou chiffre Unicode.
<br><b>alpha</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re alphab<61>tique Unicode.
<br><b>ascii</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re avec une valeur inf<6E>rieure <20> &#92;u0080 (ceux qui sont dans l'intervalle ascii 7-bit).
<br><b>boolean</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quelle des formes autoris<69>es par <A HREF="42.htm"><b>Tcl_GetBoolean</b></A>.
<br><b>control</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re de contr<74>le Unicode.
<br><b>digit</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel chiffre Unicode. Notez que ceci inclut les caract<63>res en dehors de l'intervalle &#91;0-9].
<br><b>double</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quelle des formes valides pour un double en Tcl, eventuellement entour<75> d'espaces. En cas de sous/ d<>bordement, 0 est renvoy<6F> et <i>varname</i> contiendra -1.
<br><b>false</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quelle forme autoris<69>e par <A HREF="42.htm"><b>Tcl_GetBoolean</b></A> o<> la valeur est false.
<br><b>graph</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re Unicode imprimable, except<70> l'espace.
<br><b>integer</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quelle des formes valides pour un entier en Tcl, eventuellement entour<75> d'espaces. En cas de sous/d<>bordement, 0 est renvoy<6F> et <i>varname</i> contiendra -1.
<br><A HREF="290.htm"><b>lower</b></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re alphab<61>tique Unicode minuscule.
<br><b>print</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re Unicode imprimable, incluant l'espace.
<br><b>punct</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re de ponctuation Unicode.
<br><b>space</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re espace Unicode .
<br><b>true</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quelle forme autoris<69>e par <A HREF="42.htm"><b>Tcl_GetBoolean</b></A> o<> la valeur est true.
<br><b>upper</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re alphab<61>tique Unicode majuscule.
<br><b>wordchar</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re d'un mot Unicode. Donc tout caract<63>re alphanum<75>rique, et tout caract<63>res connecteur ou de ponctuation Unicode (ex. underscore).
<br><b>xdigit</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N'importe quel caract<63>re chiffre hexad<61>cimal (&#91;0-9A-Fa-f]).
</div>
</div>
<div ALIGN="LEFT" style="margin-left: 100px;">Dans le cas de <b>boolean</b>, <b>true</b> et <b>false</b>, si la fonction renvoie 0, alors le <i>varname</i> sera toujours fix<69> <20> 0, ceci etant d&ucirc; <20> la nature vari<72>e d'une valeur bool<6F>enne valide. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">
<DL>
<DT><br><b>string last </b><i>string1 string2</i> ?<i>startIndex</i>?
</DT><DD>Recherche dans <i>string2</i> la s<>quence de caract<63>res qui correspond exactement au caract<63>res de <i>string1</i>. Si trouv<75>, retourne l'index du premier caract<63>re de la derni<6E>re correspondance dans <i>string2</i>. S'il n'y a pas de correspondance, alors retourne -1. Si <i>startIndex</i> est sp<73>cifi<66> (dans une des formes accept<70>es par la m<>thode <b>index</b>), alors seulement les caract<63>res dans <i>string2</i> <20> ou avant le <i>startIndex</i> sp<73>cifi<66> seront pris en compte dans la recherche. Par exemple,
<br><b>string last a 0a23456789abcdef 15</b>
<br>renverra <b>10</b>, mais
<br><b>string last a 0a23456789abcdef 9</b>
<br>renverra <b>1</b>.
</DD>
<DT><br><br><b>string length </b><i>string</i>
</DT><DD>Renvoie une cha<68>ne d<>cimale donnant le nombre de caract<63>res dans <i>string</i>. Notez que ce n'est pas n<>c<EFBFBD>ssairement le m<>me que le nombre d'octets utilis<69> pour stocker la cha<68>ne.
</DD>
<DT><br><b>string map</b> ?<b>-nocase</b>? <i>charMap string</i>
</DT><DD>Remplace les caract<63>res dans <i>string</i> bas<61>s sur les paires cl<63>-valeur dans <i>charMap</i> <i>charMap</i> est une liste de <i>key value key value</i> ... comme sous la forme renvoy<6F>e par <b>array get</b>. Chaque instance d'une cl<63> dans la cha<68>ne sera remplac<61>e par sa valeur correspondante. Si <b>-nocase</b> est sp<73>cifi<66>, alors la correspondance est <20>tablie sans tenir compte de la casse. L'ensemble <i>key</i> et <i>value</i> peut <20>tre de multiples caract<63>res. Le remplacement est fait d'une mani<6E>re ordonn<6E>e, donc la cl<63> apparaissant en premier dans la liste sera v<>rifi<66>e en premier, et ainsi de suite <i>string</i> est parcourue un seule fois, donc les premiers remplacements de cl<63> n'affecteront pas les correspondances suivantes. Par exemple,
<br><b>string map &#123;abc 1 ab 2 a 3 1 0} 1abcaababcabababc</b>
<br>renverra la cha<68>ne <b>01321221</b>.
</DD>
<DT><br><b>string match</b> ?<b>-nocase</b>? <i>pattern</i> <i>string</i>
</DT><DD>Teste si <i>pattern</i> correspond <20> <i>string</i>; retourne 1 si oui, 0 sinon. Si <b>-nocase</b> est sp<73>cifi<66>, alors le mod<6F>le est compar<61> <20> la cha<68>ne sans tenir compte de la casse. Pour que deux cha<68>nes correspondent, leurs contenus doivent <20>tre identiques except<70> que les s<>quences sp<73>ciales suivantes peuvent apparaitre dans <i>pattern</i>:
<DL>
<DT><b>*</b></DT><DD>Correspond <20> toute s<>quence de caract<63>res dans <i>string</i>, incluant une cha<68>ne vide.
</DD>
<DT><b>?</b></DT><DD>Correspond <20> quelconque caract<63>re unique dans <i>string</i>.
</DD>
<DT><b>&#91;</b><i>chars</i><b>]</b></DT><DD>Correspond <20> tout caract<63>re de l'ensemble indiqu<71> par <i>chars</i>. Si une s<>quence de la forme <i>x</i><b>-</b><i>y</i> apparait dans <i>chars</i>, alors tout caract<63>re entre <i>x</i> et <i>y</i>, inclus, correspondra. Quand utilis<69> avec <b>-nocase</b>, les points extr<74>mes de l'intervalle sont convertis en minuscule en premier. En consid<69>rant que &#123;&#91;A-z]} correspond <20> '_' quand la correspondance est sensible <20> la casse ('_' est entre 'Z' et 'a'), avec <b>-nocase</b> c'est consider<65> comme &#123;&#91;A-Za-z]} (et probablement ce qui etait exprim<69> pr<70>cedemment).
</DD>
<DT><b>&#92;</b><i>x</i></DT><DD>Correspond au caract<63>re unique <i>x</i>. Ceci fournit un moyen d'<27>viter l'interpr<70>tation sp<73>ciale des caract<63>res <b>*?&#91;]&#92;</b> dans <i>pattern</i>.
</DD>
</DL>
</DD>
<DT><br><b>string range </b><i>string first last</i>
</DT><DD>Renvoie un intervalle de caract<63>res cons<6E>cutifs de <i>string</i>, en commen<65>ant par le caract<63>re dont l'index est <i>first</i> et finissant par le caract<63>re dont l'index est <i>last</i>. Un index de 0 se r<>f<EFBFBD>re au premier caract<63>re de la cha<68>ne. <i>first</i> et <i>last</i> peuvent <20>tre sp<73>cifi<66>s comme dans la m<>thode <b>index</b>. Si <i>first</i> est inf<6E>rieur <20> z<>ro alors il est trait<69> comme si c'<27>tait z<>ro, et si <i>last</i> est sup<75>rieur <20> ou <20>gal <20> longueur de la cha<68>ne alors il est trait<69> comme si c'<27>tait <b>end</b>. Si <i>first</i> est sup<75>rieur <20> <i>last</i> alors une cha<68>ne vide est renvoy<6F>e.
</DD>
<DT><br><b>string repeat </b><i>string count</i>
</DT><DD>Renvoie <i>string</i> r<>p<EFBFBD>t<EFBFBD>e <i>count</i> fois.
</DD>
<DT><br><b>string replace </b><i>string first last</i> ?<i>newstring</i>?
</DT><DD>Supprime un intervalle de caract<63>res consecutifs de <i>string</i>, commen<65>ant avec le caract<63>re dont l'index est <i>first</i> et finissant avec le caract<63>re dont l'index est <i>last.</i> Un index de 0 se r<>f<EFBFBD>re au premier caract<63>re de la cha<68>ne <i>First</i> et <i>last</i> peuvent <20>tre sp<73>cifi<66>s comme dans la m<>thode <b>index</b>. Si <i>newstring</i> est sp<73>cifi<66>e, alors elle est plac<61>e dans l'intervalle des caract<63>res supprim<69>s. Si <i>first</i> est inf<6E>rieur <20> z<>ro alors il est trait<69> comme si c'<27>tait z<>ro, et si <i>last</i> est sup<75>rieur ou <20>gal <20> la longueur de la cha<68>ne alors il est trait<69> comme si c'<27>tait <b>end</b>. Si <i>first</i> est sup<75>rieur <20> <i>last</i> ou la longueur de la cha<68>ne initiale, ou <i>last</i> inf<6E>rieur <20> 0, alors la cha<68>ne initiale est renvoy<6F> inchang<6E>e.
</DD>
<DT><br><b>string tolower </b><i>string</i> ?<i>first</i>? ?<i>last</i>?
</DT><DD>Renvoie une valeur <20>gale <20> <i>string</i> except<70> que toute lettre en majuscule (ou titre) aura <20>t<EFBFBD> convertie en minuscule. Si <i>first</i> est sp<73>cifi<66>, il se r<>f<EFBFBD>re <20> l'index du premier caract<63>re dans la cha<68>ne ou commencer les modifications. Si <i>last</i> est sp<73>cifi<66>, il se r<>f<EFBFBD>re <20> l'index du caract<63>re dans la cha<68>ne ou arr<72>ter (inclus) <i>first</i> et <i>last</i> peuvent <20>tre sp<73>cifi<66>s comme dans la m<>thode <b>index</b>.
</DD>
<DT><br><b>string totitle </b><i>string</i> ?<i>first</i>? ?<i>last</i>?
</DT><DD>Renvoie une valeur <20>gale <20> <i>string</i> except<70> que le premier caract<63>re de <i>string</i> est converti en sa variante Unicode titre (ou majuscule s'il n'y a pas de variante titre) et le reste de la cha<68>ne est converti en minuscule. Si <i>first</i> est sp<73>cifi<66>, il se r<>f<EFBFBD>re <20> l'index du premier caract<63>re dans la cha<68>ne ou commencer les modifications. Si <i>last</i> est sp<73>cifi<66>, il se r<>f<EFBFBD>re <20> l'index du caract<63>re dans la cha<68>ne ou arr<72>ter (inclus). <i>first</i> et <i>last</i> peuvent <20>tre sp<73>cifi<66>s comme dans la m<>thode <b>index</b>.
</DD>
<DT><br><b>string toupper </b><i>string</i> ?<i>first</i>? ?<i>last</i>?
</DT><DD>Renvoie une valeur <20>gale <20> <i>string</i> except<70> que toute lettre minuscule (ou titre) aura <20>t<EFBFBD> convertie en majuscule. Si <i>first</i> est sp<73>cifi<66>, il se r<>f<EFBFBD>re <20> l'index du premier caract<63>re dans la cha<68>ne ou commencer les modifications. Si <i>last</i> est sp<73>cifi<66>, il se r<>f<EFBFBD>re <20> l'index du caract<63>re dans la cha<68>ne ou arr<72>ter (inclus). <i>first</i> et <i>last</i> peuvent <20>tre sp<73>cifi<66>s comme dans la m<>thode <b>index</b>.
</DD>
<DT><br><b>string trim </b><i>string</i> ?<i>chars</i>?
</DT><DD>Renvoie une valeur <20>gale <20> <i>string</i> except<70> que tous les caract<63>res en t<>te ou <20> la fin de l'ensemble indiqu<71> par <i>chars</i> sont enlev<65>s. Si <i>chars</i> n'est pas sp<73>cifi<66> alors tous les espaces sont enlev<65>s (les espaces, tabulations, saut de lignes, et retour chariot).
</DD>
<DT><br><b>string trimleft </b><i>string</i> ?<i>chars</i>?
</DT><DD>Renvoie une valeur <20>gale <20> <i>string</i> except<70> que tous les caract<63>res en t<>te de l'ensemble indiqu<71> par <i>chars</i> sont enlev<65>s. Si <i>chars</i> n'est pas sp<73>cifi<66> alors tous les espaces sont enlev<65>s (les espaces, tabulations, saut de lignes, et retour chariot).
</DD>
<DT><br><b>string trimright </b><i>string</i> ?<i>chars</i>?
</DT><DD>Renvoie une valeur <20>gale <20> <i>string</i> except<70> que tous les caract<63>res <20> la fin de l'ensemble indiqu<71> par <i>chars</i> sont enlev<65>s. Si <i>chars</i> n'est pas sp<73>cifi<66> alors tous les espaces sont enlev<65>s (les espaces, tabulations, saut de lignes, et retour chariot).
</DD>
<DT><br><b>string wordend </b><i>string charIndex</i>
</DT><DD>Renvoie l'index du caract<63>re juste apr<70>s le dernier dans le mot contenant le caract<63>re <i>charIndex</i> de <i>string</i>. <i>charIndex</i> peut <20>tre sp<73>cifi<66> comme dans la m<>thode <b>index</b>. Un mot est consider<65> comme tout intervalle contigu de caract<63>res alphanumeriques (lettres Unicode ou chiffres d<>cimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caract<63>re unique autre que ceux-ci.
</DD>
<DT><br><b>string wordstart </b><i>string charIndex</i>
</DT><DD>Renvoie l'index du premier caract<63>re dans le mot contenant le caract<63>re <i>charIndex</i> de <i>string</i> <i>charIndex</i> peut <20>tre sp<73>cifi<66> comme dans la m<>thode <b>index</b>. Un mot est consider<65> comme tout intervalle contigu de caract<63>res alphanumeriques (lettres Unicode ou chiffres d<>cimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caract<63>re unique autre que ceux-ci.
</DD>
</DL>
</div><br>
<div>Derni<EFBFBD>re r<>vision: 8.1</div>
<br>
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A>&nbsp;&nbsp;<A HREF="164.htm"><b>Pr<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="166.htm"><b>Suivant</b></A></div>
</BODY></HTML>