projman/hlp/fr/tcl/library.htm
2015-10-19 14:27:31 +04:00

120 lines
16 KiB
HTML

<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è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èque de fonctions d'usage courant. Les fonctions définies dans la bibliothèque Tcl sont génériques et peuvent être utilisées par de nombreuses applications différentes. L'emplacement de la bibliothèque Tcl est renvoyé par la commande<b> </b><b>info library</b>. En plus de la bibliothèque Tcl, chaque application doit normalement avoir sa propre bibliothèque de fonctions; l'emplacement de cette bibliothèque est normalement donné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èque Tk est conservé dans la variable <b>&#36;tk_library</b>. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Pour accéder aux fonctions de la bibliothèque Tcl, une application doit &quot; sourcer &quot; le fichier <b>init.tcl</b> dans la bibliothè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èque <A HREF="47.htm"><b>Tcl_Init</b></A> est appelé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épare les autres fonctions à être chargées à 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èque Tcl:
<DL>
<DT><b>auto_execok </b><i>cmd</i></DT><DD>Détermine si <i>cmd</i> est un fichier exécutable ou une commande interne. Si c'est le cas, elle retourne une liste d'arguments à transmettre à <A HREF="105.htm"><b>exec</b></A> pour exécuter le fichier exécutable ou la commande interne désignée par <i>cmd</i>. Sinon, elle retourne une chaîne vide. Cette commande examine les répertoires dans le chemin de recherche courant (donnés par la variable d'environnement PATH) dans sa recherche d'un fichier exécutable nommé <i>cmd</i>. Sur les plateformes Windows, la recherche est éténdue avec les mêmes répertoires et extensions de fichier utilisés par <A HREF="105.htm"><b>exec</b></A>. <b>Auto_exec</b> conserve l'information au sujet des recherches précedentes dans un tableau nommé <b>auto_execs</b>; ceci évite la recherche du chemin dans les appels suivants pour la même <i>cmd</i>. La commande <b>auto_reset</b> peut être employée pour forcer <b>auto_execok</b> à vider son cache.
</DD>
<DT><br><b>auto_import </b><i>pattern</i></DT><DD><b>Auto_import</b> est appelée pendant <b>namespace import</b> pour voir si les commandes importées spécifiées par <i>pattern</i> résident dans une bibliothèque auto-chargée. Si vrai, les commandes sont chargées, ainsi elles seront disponibles dans l'interpréteur pour la création des liens d'import. Si les commandes ne résident pas dans une bibliothèque auto-chargé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é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é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ée, si elle existe. Autrement le chemin auto-load contient juste le répertoire de la bibliothèque Tcl. A l'inté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 à évaluer pour charger chacune des commandes. Le fichier <b>tclIndex</b> sera généré avec la commande<b> auto_mkindex</b> Si <i>cmd</i> est trouvé dans un fichier index, alors le script approprié est évalué pour créer la commande. La commande <b>auto_load</b> retourne 1 si <i>cmd</i> est créée avec succès. La commande retourne 0 si il n'y a pas d'entré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ée). Si une erreur se produit pendant le traitement du script, alors cette erreur est renvoyé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 à <b>auto_load</b> recherchent <i>cmd</i> dans le tableau plutôt que de relire les fichiers d'index. L'information d'index mise en cache peut être effacée avec la commande <b>auto_reset</b>. Ceci forcera la commande <b>auto_load</b> suivante à recharger la base de données d'index à partir du disque.
</DD>
<DT><br><b>auto_mkindex </b><i>dir pattern pattern ...</i></DT><DD>Génère un index utilisable par <b>auto_load</b>. La commande recherche <i>dir</i> pour tout fichiers dont les noms correspondent à un des arguments <i>pattern</i> (la correspondance est établie avec la commande <A HREF="119.htm"><b>glob</b></A>), génè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é <b>tclIndex</b> dans <i>dir</i>. Si aucun modèle n'est précisé, un modèle de <b>*.tcl</b> sera supposé. 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é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éteur esclave et en interceptant les commandes proc et namespace qui sont exécutées Des extensions peuvent utiliser le package (non documenté) <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ère relativement rustique s'il existe une ligne qui contient le mot <A HREF="147.htm"><b>proc</b></A> en premiers caractères alors c'est supposé être une définition de fonction et le mot suivant de la ligne est interprété comme le nom de la fonction. Les définitions de fonction qui n'apparaissent de cette manière (ex. elles ont des espaces avant <A HREF="147.htm"><b>proc</b></A>) ne seront pas indexé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ères spé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étruit toute l'information mise en cache par <b>auto_execok</b> et <b>auto_load</b>. Cette information sera relue à partir du disque la prochaine fois que c'est nécessaire. <b>Auto_reset</b> efface aussi toutes fonctions listées dans l'index auto_load, ainsi une copie récente sera chargée la fois suivante qu'elles seront utilisées.
</DD>
<DT><br><b>auto_qualify </b><i>command namespace</i>
</DT><DD>Calcule une liste de noms pleinement qualifiés pour <i>command</i>. Cette liste reflète le chemin qu'un interpré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ément, si <i>command</i> est relatif et que <i>namespace</i> n'est pas <b>::</b>, la liste renvoyée a deux éléments <i>command</i> visible par <i>namespace</i>, comme si c'était une commande dans le <i>namespace</i> namespace; et <i>command</i> comme si c'é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é par les auto-loading facilités en Tcl, autant pour produire des index auto-loading tel que <i>pkgIndex.tcl</i>, que pour effectuer l'auto-loading des fonctions à l'exé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 à utiliser par les extensions pendant leur initialisation. Elles appellent cette fonction pour rechercher leur bibliothèque de scripts dans plusieurs répertoires standard. Le dernier composant du nom de répertoire de la bibliothèque est normalement <i>basenameversion</i> (ex., tk8.0), mais il pourra être &quot;library&quot; quand il est situé dans les hiérarchies de construction. Le fichier <i>initScript</i> sera &quot;sourcé&quot; dans l'interpréteur une fois qu'il est trouvé. Le répertoire dans lequel ce fichier est trouvé est stocké dans la variable globale <i>varName</i>. Si cette variable est déjà définie (ex., par du code C pendant l'initialisation de l'application) alors aucune recherche n'est effectuée. Autrement la recherche se fait dans ces répertoires: le répertoire nommé par la variable d'environnement <i>enVarName</i>; relatif au répertoire bibliothèque Tcl; relatif au fichier exécutable dans l'installation standard (répertoire bin ou bin/<i>arch)</i>; relatif au fichier exécutable dans l'arbre de construction courant; relatif au fichier exécutable dans un arbre de construction parallèle.
</DD>
<DT><br><b>parray </b><i>arrayName</i>
</DT><DD>Affiche sur la sortie standard les noms et valeurs de tous les éléments dans le tableau <i>arrayName</i>. <b>ArrayName</b> doit être un tableau accessible à l'appelant de <b>parray</b>. Il peut ê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ès un index de départ <i>start</i> dans la chaîne <i>str</i>. Un emplacement de fin-de-mot est défini pour être le premier caractère non-mot suivant le premier caractère mot après le point de départ. Renvoie -1 si il n'y a plus d'emplacement fin-de-mot aprè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ères sont des caractè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ès un index de départ <i>start</i> dans la chaîne <i>str</i>. Un emplacement début-de-mot est défini pour être le premier caractère mot suivant un caractère non-mot. Renvoie -1 si il n'y a plus d'emplacement de début-de-mot aprè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îne <i>str</i>. Renvoie -1 si il n'y a plus d'emplacement de début-de-mot aprè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ère limite de mot après l'index de départ <i>start</i> dans la chaîne <i>str</i>. Renvoie -1 si il n'y a pas de plus limites après le point de départ dans la chaîne donnée L'index renvoyé se réfère au second caractè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ère limite de mot avant l'index de départ <i>start</i> dans la chaîne <i>str</i> Renvoie -1 si il n'y a pas de plus limites avant le point de départ dans la chaîne donnée. L'index renvoyé se réfère au second caractè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ées par les fonctions dans la bibliothèque Tcl:
<DL>
<DT><b>auto_execs</b>
</DT><DD>Utilisée par <b>auto_execok</b> pour enregistrer si des commandes particulières existent comme fichiers exécutables.
</DD>
<DT><br><b>auto_index</b>
</DT><DD>Utilisée par <b>auto_load</b> pour sauvegarder l'information index lue à partir du disque.
</DD>
<DT><br><b>auto_noexec</b>
</DT><DD>Si fixée à 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ée à 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ée, alors doit contenir une liste Tcl valide indiquant les répertoires à rechercher pendant les opérations auto-load. Cette variable est initialisée au démarrage pour contenir, dans l'ordre: les répertoires listés dans la variable d'environnement TCLLIBPATH, le répertoire nommé par la variable &#36;tcl_library, le répertoire parent de &#36;tcl_ library, les répertoires listés dans la variable &#36;tcl_pkgPath.
</DD>
<DT><br><b>env(TCL_LIBRARY)</b>
</DT><DD>Si fixée, alors spécifie l'emplacement du répertoire contenant la bibliothèque des scripts (la valeur de cette variable sera assignés à <b>tcl_library</b> variable et therefore renvoyé par la commande <b>info library</b>). Si cette variable n'est pas fixée alors une valeur par défaut est utilisée.
</DD>
<DT><br><b>env(TCLLIBPATH)</b>
</DT><DD>Si fixée, alors doit contenir une liste Tcl valide donnant les répertoires à rechercher pendant les opérations auto-load. Les répertoires doivent être spécifiés en format Tcl , en utilisant &quot;/&quot; comme séparateur de chemin, indépendemment de la plateforme. Cette variable est seulement utilisée à 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é par les routines comme <b>tcl_endOfWord</b> pour identifier si un caractère fait partie d'un mot ou non. Si le modèle correspond à un caractère, le caractère est consideré comme caractère non-mot. Sur les plateformes Windows, les espaces, tabulations, et saut de lignes sont considerés comme caractères non-mots. Sous Unix, tout sauf les chiffres, lettres et underscores sont considerés comme caractère non-mots.
</DD>
<DT><br><b>tcl_wordchars</b>
</DT><DD>Cette variable contient une expression rationelle qui est utilisée par les routines comme <b>tcl_endOfWord</b> pour identifier si un caractère fait partie d'un mot ou non. Si le modèle correspond à un caractère, le caractère est consideré comme caractère d'un mot. Sur les plateformes Windows,les mots comportent tout caractè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ée par <A HREF="174.htm"><b>unknown</b></A> pour enregistrer la commande(s) recherchée. Elle est utilisé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è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écédent</b></A>&nbsp;&nbsp;<A HREF="130.htm"><b>Suivant</b></A></div>
</BODY></HTML>