projman/hlp/fr/tcl/library.htm

120 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>library&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;">auto_execok, auto_import, auto_load, auto_mkindex, auto_mkindex_old, auto_qualify, auto_reset, tcl_findLibrary, parray, tcl_endOfWord, tcl_startOfNextWord, tcl_startOfPreviousWord, tcl_wordBreakAfter, tcl_wordBreakBefore - biblioth<74>que standard des fonctions Tcl
</div><br>
<div><b>SYNTAXE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><b>auto_execok </b><i>cmd</i><br>
<b>auto_import </b><i>pattern</i><br>
<b>auto_load </b><i>cmd</i><br>
<b>auto_mkindex </b><i>dir pattern pattern ...</i><br>
<b>auto_mkindex_old </b><i>dir pattern pattern ...</i><br>
<b>auto_qualify </b><i>command namespace</i><br>
<b>auto_reset</b><br>
<b>tcl_findLibrary </b><i>basename version patch initScript enVarName varName</i><br>
<b>parray </b><i>arrayName</i><br>
<b>tcl_endOfWord </b><i>str start</i><br>
<b>tcl_startOfNextWord </b><i>str start</i><br>
<b>tcl_startOfPreviousWord </b><i>str start</i><br>
<b>tcl_wordBreakAfter </b><i>str start</i><br>
<b>tcl_wordBreakBefore </b><i>str start</i><br>
</div><br>
<div><b>INTRODUCTION</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Tcl inclut une biblioth<74>que de fonctions d'usage courant. Les fonctions d<>finies dans la biblioth<74>que Tcl sont g<>n<EFBFBD>riques et peuvent <20>tre utilis<69>es par de nombreuses applications diff<66>rentes. L'emplacement de la biblioth<74>que Tcl est renvoy<6F> par la commande<b> </b><b>info library</b>. En plus de la biblioth<74>que Tcl, chaque application doit normalement avoir sa propre biblioth<74>que de fonctions; l'emplacement de cette biblioth<74>que est normalement donn<6E>e par la valeur de la variable<b> </b>globale<b> &#36;</b><i>app</i><b>_library</b>, o<> <i>app</i> est le nom de l'application. Par exemple, l'emplacement de la biblioth<74>que Tk est conserv<72> dans la variable <b>&#36;tk_library</b>. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Pour acc<63>der aux fonctions de la biblioth<74>que Tcl, une application doit &quot; sourcer &quot; le fichier <b>init.tcl</b> dans la biblioth<74>que, par exemple avec la commande Tcl </div>
<div ALIGN="LEFT" style="margin-left: 102px;"><b>source &#91;file join &#91;info library] init.tcl]</b></div>
<div ALIGN="LEFT" style="margin-left: 51px;">Si la fonction de biblioth<74>que <A HREF="47.htm"><b>Tcl_Init</b></A> est appel<65>e de la fonction d'une application <A HREF="5.htm"><b>Tcl_AppInit</b></A>, ceci se produit automatiquement. Le code de <b>init.tcl</b> d<>finira la fonction <A HREF="174.htm"><b>unknown</b></A> et pr<70>pare les autres fonctions <20> <20>tre charg<72>es <20> la demande en utilisant le m<>canisme auto_load d<>fini ci-dessous.
</div><br>
<div><b>FONCTIONS COMMANDES</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Les fonctions suivantes sont fournies dans la biblioth<74>que Tcl:
<DL>
<DT><b>auto_execok </b><i>cmd</i></DT><DD>D<EFBFBD>termine si <i>cmd</i> est un fichier ex<65>cutable ou une commande interne. Si c'est le cas, elle retourne une liste d'arguments <20> transmettre <20> <A HREF="105.htm"><b>exec</b></A> pour ex<65>cuter le fichier ex<65>cutable ou la commande interne d<>sign<67>e par <i>cmd</i>. Sinon, elle retourne une cha<68>ne vide. Cette commande examine les r<>pertoires dans le chemin de recherche courant (donn<6E>s par la variable d'environnement PATH) dans sa recherche d'un fichier ex<65>cutable nomm<6D> <i>cmd</i>. Sur les plateformes Windows, la recherche est <20>t<EFBFBD>ndue avec les m<>mes r<>pertoires et extensions de fichier utilis<69>s par <A HREF="105.htm"><b>exec</b></A>. <b>Auto_exec</b> conserve l'information au sujet des recherches pr<70>cedentes dans un tableau nomm<6D> <b>auto_execs</b>; ceci <20>vite la recherche du chemin dans les appels suivants pour la m<>me <i>cmd</i>. La commande <b>auto_reset</b> peut <20>tre employ<6F>e pour forcer <b>auto_execok</b> <20> vider son cache.
</DD>
<DT><br><b>auto_import </b><i>pattern</i></DT><DD><b>Auto_import</b> est appel<65>e pendant <b>namespace import</b> pour voir si les commandes import<72>es sp<73>cifi<66>es par <i>pattern</i> r<>sident dans une biblioth<74>que auto-charg<72>e. Si vrai, les commandes sont charg<72>es, ainsi elles seront disponibles dans l'interpr<70>teur pour la cr<63>ation des liens d'import. Si les commandes ne r<>sident pas dans une biblioth<74>que auto-charg<72>e, <b>auto_import</b> ne fait rien.
</DD>
<DT><br><b>auto_load </b><i>cmd</i></DT><DD>Cette commande tente de charger la d<>finition d'une commande Tcl nomm<6D>e <i>cmd</i>. Pour ceci elle recherche un <i>auto-load path</i>, qui est une liste d'un ou plusieurs r<>pertoires. Le chemin auto-load est donn<6E>s par la variable globale <b>&#36;auto_path</b> si elle existe. S'il n'y a pas de variable<b> &#36;auto_path</b>, alors la variable d'environnement TCLLIBPATH est utilis<69>e, si elle existe. Autrement le chemin auto-load contient juste le r<>pertoire de la biblioth<74>que Tcl. A l'int<6E>rieur de chaque r<>pertoire dans le chemin auto-load il doit y avoir un fichier <b>tclIndex</b> qui d<>crit une ou plusieurs commandes d<>finies dans ce r<>pertoire et un script <20> <20>valuer pour charger chacune des commandes. Le fichier <b>tclIndex</b> sera g<>n<EFBFBD>r<EFBFBD> avec la commande<b> auto_mkindex</b> Si <i>cmd</i> est trouv<75> dans un fichier index, alors le script appropri<72> est <20>valu<6C> pour cr<63>er la commande. La commande <b>auto_load</b> retourne 1 si <i>cmd</i> est cr<63><72>e avec succ<63>s. La commande retourne 0 si il n'y a pas d'entr<74>e index pour <i>cmd</i> ou si le script ne definit actuellement pas <i>cmd</i> (ex. parce que l'information d'index est p<>rim<69>e). Si une erreur se produit pendant le traitement du script, alors cette erreur est renvoy<6F>e. <b>Auto_load</b> lit seulement l'information d'index une fois et la sauvegarde dans le tableau <b>auto_index</b> les appels suivants <20> <b>auto_load</b> recherchent <i>cmd</i> dans le tableau plut<75>t que de relire les fichiers d'index. L'information d'index mise en cache peut <20>tre effac<61>e avec la commande <b>auto_reset</b>. Ceci forcera la commande <b>auto_load</b> suivante <20> recharger la base de donn<6E>es d'index <20> partir du disque.
</DD>
<DT><br><b>auto_mkindex </b><i>dir pattern pattern ...</i></DT><DD>G<EFBFBD>n<EFBFBD>re un index utilisable par <b>auto_load</b>. La commande recherche <i>dir</i> pour tout fichiers dont les noms correspondent <20> un des arguments <i>pattern</i> (la correspondance est <20>tablie avec la commande <A HREF="119.htm"><b>glob</b></A>), g<>n<EFBFBD>re un index de toutes les fonctions de commande Tcl d<>finies dans tout les fichiers correspondants, et stocke l'information d'index dans un fichier nomm<6D> <b>tclIndex</b> dans <i>dir</i>. Si aucun mod<6F>le n'est pr<70>cis<69>, un mod<6F>le de <b>*.tcl</b> sera suppos<6F>. Par exemple, la commande
<br>&nbsp;&nbsp;&nbsp;<b>auto_mkindex foo *.tcl</b>
<br>lira tout les fichiers<b>.tcl</b> dans le sous-r<>pertoire <b>foo</b> et g<>n<EFBFBD>rera un nouveau fichier d'index <b>foo/tclIndex</b>.
<br><b>Auto_mkindex</b> analyse les scripts Tcl en les &quot;sourcant&quot; dans un interpr<70>teur esclave et en interceptant les commandes proc et namespace qui sont ex<65>cut<75>es Des extensions peuvent utiliser le package (non document<6E>) <b>auto_mkindex_parser</b> pour d<>clarer d'autres commandes qui peuvent collaborer avec auto_load index. Vous pourrez parcourir auto.tcl pour voir comment cela fonctionne.
<br><b>Auto_mkindex_old</b> analyse les scripts Tcl d'une mani<6E>re relativement rustique s'il existe une ligne qui contient le mot <A HREF="147.htm"><b>proc</b></A> en premiers caract<63>res alors c'est suppos<6F> <20>tre une d<>finition de fonction et le mot suivant de la ligne est interpr<70>t<EFBFBD> comme le nom de la fonction. Les d<>finitions de fonction qui n'apparaissent de cette mani<6E>re (ex. elles ont des espaces avant <A HREF="147.htm"><b>proc</b></A>) ne seront pas index<65>es. Si votre script contient du code &quot;dangereux&quot;, tel que du code d'initialisation globale ou des noms de fonction avec des caract<63>res sp<73>ciaux comme <b>&#36;</b>, <A HREF="24.htm"><b>*</b></A>, <b>&#91;</b> ou <b>]</b>, il sera plus sur d'utiliser <b>auto_mkindex_old</b>.
</DD>
<DT><br><b>auto_reset</b></DT><DD>D<EFBFBD>truit toute l'information mise en cache par <b>auto_execok</b> et <b>auto_load</b>. Cette information sera relue <20> partir du disque la prochaine fois que c'est n<>cessaire. <b>Auto_reset</b> efface aussi toutes fonctions list<73>es dans l'index auto_load, ainsi une copie r<>cente sera charg<72>e la fois suivante qu'elles seront utilis<69>es.
</DD>
<DT><br><b>auto_qualify </b><i>command namespace</i>
</DT><DD>Calcule une liste de noms pleinement qualifi<66>s pour <i>command</i>. Cette liste refl<66>te le chemin qu'un interpr<70>teur standard Tcl suit pour la recherche de commande: d'abord il cherche la commande dans le namespace courant, et ensuite dans le namespace global. Conform<72>ment, si <i>command</i> est relatif et que <i>namespace</i> n'est pas <b>::</b>, la liste renvoy<6F>e a deux <20>l<EFBFBD>ments <i>command</i> visible par <i>namespace</i>, comme si c'<27>tait une commande dans le <i>namespace</i> namespace; et <i>command</i> comme si c'<27>tait une commande dans le namespace global. Autrement, si <i>command</i> est absolue (elle commence par <b>::</b>), ou bien que <i>namespace</i> est <b>::</b>, la liste contient seulement <i>command</i> comme si c'etait une commande dans le namespace global.
<br><b>Auto_qualify</b> est utilis<69> par les auto-loading facilit<69>s en Tcl, autant pour produire des index auto-loading tel que <i>pkgIndex.tcl</i>, que pour effectuer l'auto-loading des fonctions <20> l'ex<65>cution.
</DD>
<DT><br><b>tcl_findLibrary </b><i>basename version patch initScript enVarName varName</i>
</DT><DD>Ceci est une fonction de recherche standard <20> utiliser par les extensions pendant leur initialisation. Elles appellent cette fonction pour rechercher leur biblioth<74>que de scripts dans plusieurs r<>pertoires standard. Le dernier composant du nom de r<>pertoire de la biblioth<74>que est normalement <i>basenameversion</i> (ex., tk8.0), mais il pourra <20>tre &quot;library&quot; quand il est situ<74> dans les hi<68>rarchies de construction. Le fichier <i>initScript</i> sera &quot;sourc<EFBFBD>&quot; dans l'interpr<70>teur une fois qu'il est trouv<75>. Le r<>pertoire dans lequel ce fichier est trouv<75> est stock<63> dans la variable globale <i>varName</i>. Si cette variable est d<>j<EFBFBD> d<>finie (ex., par du code C pendant l'initialisation de l'application) alors aucune recherche n'est effectu<74>e. Autrement la recherche se fait dans ces r<>pertoires: le r<>pertoire nomm<6D> par la variable d'environnement <i>enVarName</i>; relatif au r<>pertoire biblioth<74>que Tcl; relatif au fichier ex<65>cutable dans l'installation standard (r<>pertoire bin ou bin/<i>arch)</i>; relatif au fichier ex<65>cutable dans l'arbre de construction courant; relatif au fichier ex<65>cutable dans un arbre de construction parall<6C>le.
</DD>
<DT><br><b>parray </b><i>arrayName</i>
</DT><DD>Affiche sur la sortie standard les noms et valeurs de tous les <20>l<EFBFBD>ments dans le tableau <i>arrayName</i>. <b>ArrayName</b> doit <20>tre un tableau accessible <20> l'appelant de <b>parray</b>. Il peut <20>tre soit local ou global.
</DD>
<DT><br><b>tcl_endOfWord </b><i>str start</i>
</DT><DD>Renvoie l'index du premier emplacement de fin-de-mot qui se trouve apr<70>s un index de d<>part <i>start</i> dans la cha<68>ne <i>str</i>. Un emplacement de fin-de-mot est d<>fini pour <20>tre le premier caract<63>re non-mot suivant le premier caract<63>re mot apr<70>s le point de d<>part. Renvoie -1 si il n'y a plus d'emplacement fin-de-mot apr<70>s le point de d<>part. Voir la description de <b>tcl_wordchars</b> et <b>tcl_nonwordchars</b> ci-dessous pour plus de d<>tails sur comment Tcl d<>termine quels caract<63>res sont des caract<63>re mots.
</DD>
<DT><br><b>tcl_startOfNextWord </b><i>str start</i>
</DT><DD>Renvoie l' index du premier emplacement d<>but-de-mot qui se trouve apr<70>s un index de d<>part <i>start</i> dans la cha<68>ne <i>str</i>. Un emplacement d<>but-de-mot est d<>fini pour <20>tre le premier caract<63>re mot suivant un caract<63>re non-mot. Renvoie -1 si il n'y a plus d'emplacement de d<>but-de-mot apr<70>s le point de d<>part.
</DD>
<DT><br><b>tcl_startOfPreviousWord </b><i>str start</i>
</DT><DD>Renvoie l'index du premier emplacement d<>but-de-mot qui se trouve avant un index de d<>part <i>start</i> dans la cha<68>ne <i>str</i>. Renvoie -1 si il n'y a plus d'emplacement de d<>but-de-mot apr<70>s le point de d<>part.
</DD>
<DT><br><b>tcl_wordBreakAfter </b><i>str start</i>
</DT><DD>Renvoie l'index de la premi<6D>re limite de mot apr<70>s l'index de d<>part <i>start</i> dans la cha<68>ne <i>str</i>. Renvoie -1 si il n'y a pas de plus limites apr<70>s le point de d<>part dans la cha<68>ne donn<6E>e L'index renvoy<6F> se r<>f<EFBFBD>re au second caract<63>re de la paire qui comporte une limite.
</DD>
<DT><br><b>tcl_wordBreakBefore </b><i>str start</i>
</DT><DD>Renvoie l'index de la premi<6D>re limite de mot avant l'index de d<>part <i>start</i> dans la cha<68>ne <i>str</i> Renvoie -1 si il n'y a pas de plus limites avant le point de d<>part dans la cha<68>ne donn<6E>e. L'index renvoy<6F> se r<>f<EFBFBD>re au second caract<63>re de la paire qui comporte une limite.
</DD>
</DL>
</div><br>
<div><b>VARIABLES</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">Les variables globales suivantes sont d<>finies ou utilis<69>es par les fonctions dans la biblioth<74>que Tcl:
<DL>
<DT><b>auto_execs</b>
</DT><DD>Utilis<EFBFBD>e par <b>auto_execok</b> pour enregistrer si des commandes particuli<6C>res existent comme fichiers ex<65>cutables.
</DD>
<DT><br><b>auto_index</b>
</DT><DD>Utilis<EFBFBD>e par <b>auto_load</b> pour sauvegarder l'information index lue <20> partir du disque.
</DD>
<DT><br><b>auto_noexec</b>
</DT><DD>Si fix<69>e <20> une quelconque valeur, alors <A HREF="174.htm"><b>unknown</b></A> ne tentera pas &quot; d'auto-exec &quot; quelconques commandes.
</DD>
<DT><br><b>auto_noload</b>
</DT><DD>Si fix<69>e <20> une quelconque valeur, alors <A HREF="174.htm"><b>unknown</b></A> ne tentera pas &quot; d'auto-load &quot; quelconque commandes.
</DD>
<DT><br><b>auto_path</b>
</DT><DD>Si fix<69>e, alors doit contenir une liste Tcl valide indiquant les r<>pertoires <20> rechercher pendant les op<6F>rations auto-load. Cette variable est initialis<69>e au d<>marrage pour contenir, dans l'ordre: les r<>pertoires list<73>s dans la variable d'environnement TCLLIBPATH, le r<>pertoire nomm<6D> par la variable &#36;tcl_library, le r<>pertoire parent de &#36;tcl_ library, les r<>pertoires list<73>s dans la variable &#36;tcl_pkgPath.
</DD>
<DT><br><b>env(TCL_LIBRARY)</b>
</DT><DD>Si fix<69>e, alors sp<73>cifie l'emplacement du r<>pertoire contenant la biblioth<74>que des scripts (la valeur de cette variable sera assign<67>s <20> <b>tcl_library</b> variable et therefore renvoy<6F> par la commande <b>info library</b>). Si cette variable n'est pas fix<69>e alors une valeur par d<>faut est utilis<69>e.
</DD>
<DT><br><b>env(TCLLIBPATH)</b>
</DT><DD>Si fix<69>e, alors doit contenir une liste Tcl valide donnant les r<>pertoires <20> rechercher pendant les op<6F>rations auto-load. Les r<>pertoires doivent <20>tre sp<73>cifi<66>s en format Tcl , en utilisant &quot;/&quot; comme s<>parateur de chemin, ind<6E>pendemment de la plateforme. Cette variable est seulement utilis<69>e <20> l'initialisation de la variable <b>auto_path</b> .
</DD>
<DT><br><b>tcl_nonwordchars</b>
</DT><DD>Cette variable contient une expression rationelle qui est utilis<69> par les routines comme <b>tcl_endOfWord</b> pour identifier si un caract<63>re fait partie d'un mot ou non. Si le mod<6F>le correspond <20> un caract<63>re, le caract<63>re est consider<65> comme caract<63>re non-mot. Sur les plateformes Windows, les espaces, tabulations, et saut de lignes sont consider<65>s comme caract<63>res non-mots. Sous Unix, tout sauf les chiffres, lettres et underscores sont consider<65>s comme caract<63>re non-mots.
</DD>
<DT><br><b>tcl_wordchars</b>
</DT><DD>Cette variable contient une expression rationelle qui est utilis<69>e par les routines comme <b>tcl_endOfWord</b> pour identifier si un caract<63>re fait partie d'un mot ou non. Si le mod<6F>le correspond <20> un caract<63>re, le caract<63>re est consider<65> comme caract<63>re d'un mot. Sur les plateformes Windows,les mots comportent tout caract<63>re qui n'est pas un espace, une tabulation, ou une nouvelle ligne. Sous Unix, les mots comportent des chiffres, lettres ou underscores.
</DD>
<DT><br><b>unknown_pending</b>
</DT><DD>Utilis<EFBFBD>e par <A HREF="174.htm"><b>unknown</b></A> pour enregistrer la commande(s) recherch<63>e. Elle est utilis<69>e pour detecter les erreurs o<> <A HREF="174.htm"><b>unknown</b></A> s'appelle r<>cursivement dans une boucle infinie. La variable est d<>truite avant que <A HREF="174.htm"><b>unknown</b></A> retourne.
</DD>
</DL>
</div><br>
<div><b>VOIR EGALEMENT</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><A HREF="150.htm">re_syntax</A>(n) </div><br>
<div>Derni<EFBFBD>re r<>vision: 8.0</div>
<br>
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A>&nbsp;&nbsp;<A HREF="128.htm"><b>Pr<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="130.htm"><b>Suivant</b></A></div>
</BODY></HTML>