• Aucun résultat trouvé

pwd

La commande pwd retourne le chemin complet du r´epertoire courant. Elle n’ad- met aucun argument, ni aucune option.

Syntaxe

pwd

read

La commande read permet de lire depuis un canal ouvert.

Syntaxe

read?-nonewline? Canal read Canal NbCars

Description

Cette commande peut ˆetre utilis´ee de deux mani`eres diff´erentes :

– sous la premi`ere forme, elle lit toutes les donn´ees en provenance du canal jusqu’`a la fin du fichier. Si l’option -nonewline est utilis´ee, le dernier caract`ere lu sera ignor´e si jamais il s’agit d’un symbole de fin de ligne. Cette option est ignor´ee si la commande termine avant d’avoir atteint la fin du fichier. – sous la deuxi`eme forme, elle lit uniquement le nombre de caract`eres sp´ecifi´e

par l’argument suppl´ementaire NbCars. S’il y a moins de caract`eres `a lire que la valeur demand´ee, la lecture s’arrˆete au dernier caract`ere restant. Si le canal est configur´e pour lire des caract`eres cod´es sur plusieurs octets, le nombre NbCars correspond au nombre effectif de caract`eres (et non pas au nombre d’octets utilis´es pour les repr´esenter).

Si le canal est en mode non-bloquant, la commande peut ne pas arriver `a lire autant de caract`eres que demand´e : une fois lues les donn´ees disponibles la com- mande renverra ces donn´ees plutˆot que de bloquer en attendant la suite. Si le canal est configur´e pour recevoir des caract`eres multi-octets et qu’il reste dans le tampon quelques octets qui ne constituent pas un caract`ere valide, la commande read ne les renverra que lorsqu’un caract`ere reconnu aura ´et´e compl´et´e ou bien si la fin du fichier a ´et´e atteinte.

La commande read traduit les symboles de saut de ligne suivant les options fix´ees pour ce canal par la commande fconfigure -translation. Les sauts de lignes ne sont pas repr´esent´es de la mˆeme fa¸con selon les divers syst`emes d’exploitation (voir la commande puts `a la page 139).

. regexp 142

regexp

La commande regexp compare une chaˆıne `a une expression r´eguli`ere.

Syntaxe

regexp ?Options? Expression Chaˆıne ?VarCorresp? ?SousVarCorresp SousVar- Corresp...?

Description

Cette commande d´etermine si l’expression r´eguli`ere Expression correspond en tout ou en partie `a Chaˆıne et renvoie 1 si c’est le cas, 0 sinon.6 La syntaxe des

expressions r´eguli`eres reconnues par Tcl est expliqu´ee au chapitres Les expressions r´eguli`eres.

Si des arguments additionnels sont sp´ecifi´es `a la suite de Chaˆıne ils sont trait´es comme les noms de variables destin´ees `a contenir l’information sur les portions de chaˆınes captur´ees par l’expression Expression. Le premier de ces arguments, VarCorresp, contiendra toute la partie de Chaˆıne qui a ´et´e trouv´ee par l’expression r´eguli`ere. Les arguments suivants, SousVarCorresp, contiendront les portions de Chaˆıne captur´ees par les sous-motifs entre parenth`eses de l’expression.

La commande regexp supporte les options suivantes que l’on peut sp´ecifier avant l’expression elle-mˆeme :

-about

Au lieu d’essayer de trouver l’expression r´eguli`ere, cette option renvoie une liste contenant des informations sur l’expression r´eguli`ere. Le premier ´el´ement de la liste est le nombre de sous-expressions. Le second ´el´ement est une liste de propri´et´es d´ecrivant divers attributs de l’expression r´eguli`ere. Cette option est utilis´ee `a des fins de d´ebogage.

-all

Permet que l’expression r´eguli`ere soit trouv´ee autant de fois qu’il est possible dans la chaˆıne, la commande renvoyant alors le nombre de correspondances trouv´ees. Si la commande est utilis´ee avec des variables capturantes, celles-ci contiendront les valeurs associ´ees `a la derni`ere correspondance uniquement. -expanded

Autorise l’utilisation de la syntaxe d´evelopp´ee des expressions r´eguli`eres dans laquelle les espaces et les commentaires sont ignor´es ce qui permet justement d’en introduire afin de rendre l’expression plus lisible et plus compr´ehensible. C’est l’´equivalent de l’option (?x) que l’on peut placer directement dans une expression.

-indices

Modifie ce qui sera stock´e dans les variables SousVarCorresp. Au lieu de

stocker les caract`eres trouv´es, chaque variable contiendra une liste de deux valeurs enti`eres repr´esentant les indices du premier et du dernier caract`ere de la correspondance dans la chaˆıne Chaˆıne.

-inline

Permet que la commande renvoie sous forme d’une liste les donn´ees qui nor- malement seraient stock´ees dans des variables capturantes. Avec cette option on peut donc ne pas sp´ecifier de noms de variables capturantes. Si elle est uti- lis´ee conjointement avec l’option -all, les r´esultats obtenus `a chaque it´eration sont agr´eg´es `a la liste. Pour chaque it´eration, la commande ajoute `a la liste la correspondance enti`ere puis les ´el´ements correspondant aux sous-motifs ´eventuels. Par exemple :

regexp -inline --{\w(\w)} " script " sc c

regexp -inline−all -- {\w(\w)} " script " sc c ri i pt t

-line

Permet de rendre la recherche sensible aux symboles de saut de ligne. Par d´efaut, un caract`ere de saut de ligne est trait´e comme un caract`ere ordinaire. Avec cette option, le m´etacaract`ere (( . )) et les expressions n´egatives entre crochets (expressions commen¸cant par [^) ne repr´esenteront plus le caract`ere de saut de ligne. Cela permet d’empˆecher que des correspondances s’´etendent sur plusieurs lignes. Les symboles d’ancrage sont alors trait´es diff´eremment : le d´ebut de ligne symbolis´e par un circonflexe ^ d´esignera une position juste apr`es un saut de ligne et la fin de ligne symbolis´ee par un dollar $ d´esignera une position juste avant un saut de ligne.

Cette option revient `a sp´ecifier `a la fois les options -linestop et -lineanchor et est l’´equivalent de la directive (?n) que l’on peut placer directement dans une expression.

-lineanchor

Modifie le comportement des symboles d’ancrage circonflexe ^ et dollar $ afin qu’ils correspondent `a de v´eritables commencement ou fin de ligne respective- ment. C’est l’´equivalent de la directive (?w) que l’on peut placer directement dans une expression.

-linestop

Modifie le comportement du m´etacaract`ere (( . )) et des expressions n´egatives entre crochets (expressions commen¸cant par [^) afin qu’elles s’arrˆetent aux caract`eres de saut de ligne. C’est l’´equivalent de la directive (?p) que l’on peut placer directement dans une expression.

-nocase

. regexp 144 -start Index

Sp´ecifie l’indice d’un caract`ere de la chaˆıne `a partir duquel doit commencer la recherche. Avec cette option, la symbole d’ancrage circonflexe ^ ne mar- quera pas le d´ebut d’une ligne mais la s´equence d’´echappement \A d´esignera toujours le d´ebut de la chaˆıne `a la position d´esign´ee par l’argument Index. Si l’option -indices est sp´ecifi´ee, les positions seront index´ees `a partir du d´ebut absolu de la chaˆıne.

--

Marque la fin des options. L’argument qui suit un double tiret est trait´e comme une expression r´eguli`ere mˆeme si celle-ci commence par un tiret.

registry

La commande registry ser,t `a manipuler le registre de Windows.

Syntaxe

package require registry 1.0

registry Sous-commande NomCl´e?Arg Arg...?

Description

Le module registry procure un ensemble d’op´erations de base permettant d’ef- fectuer des op´erations sur le registre de Windows. Il impl´emente une commande Tcl appel´ee registry. Cette commande est support´ee uniquement sur les plates-formes Windows. Elle doit ˆetre utilis´ee avec prudence car un registre corrompu rendra le syst`eme inutilisable. Ce n’est pas une commande de base de Tcl. Pour la rendre disponible, il faut charger l’extension appel´ee registry qui se pr´esente sous la forme d’une biblioth`eque partag´ee (comme tclreg10.dll pour la version 1.0).

L’argument NomCl´e est le nom d’une cl´e du registre. Les cl´es du registre peuvent prendre l’une des formes suivantes :

\\nomHote\nomRacine\nomCl´es nomRacine\nomCl´es

nomRacine

o`u nomHote sp´ecifie le nom de n’importe quel hˆote Windows qui exporte son registre. La composante nomRacine doit ˆetre l’une des valeurs :

hkey local machine, hkey users, hkey classes root,

hkey current user, hkey current config, hkey performance data ou hkey dyn data.

La composante nomCl´es peut ˆetre un ou plusieurs noms de cl´es de registre s´epar´es par des contre-obliques \.

Les sous-commandes d´efinies pour la commande registry sont : registry delete NomCl´e?NomValeur?

Si l’argument optionnel NomValeur est pr´esent, la valeur sp´ecifi´ee par NomCl´e sera supprim´ee du registre. Si l’argument optionnel NomValeur est omis, la cl´e sp´ecifi´ee ainsi que toutes les sous-cl´es et valeurs en-dessous d’elle dans la hi´erarchie du registre seront d´etruites. Si la cl´e n’a pas pu ˆetre supprim´ee, une erreur est g´en´er´ee. Si la cl´e n’existe pas, la commande est sans effet. registry get NomCl´e NomValeur

Renvoie les donn´ees associ´ees `a la valeur NomValeur sous la cl´e NomCl´e. Si soit la cl´e soit la valeur n’existent pas, une erreur est g´en´er´ee. Pour plus de d´etails sur le format des donn´ees renvoy´ees, voir le paragraphe Types sup- port´es ci-dessous.

. registry 146 registry keys NomCl´e?Motif?

Si Motif n’est pas sp´ecifi´e, la commande renvoie une liste des noms de toutes les sous-cl´es de NomCl´e. Si Motif est sp´ecifi´e, seuls les noms correspondant au motif sont renvoy´es. Les correspondances avec le motif sont d´etermin´ees selon les mˆemes r`egles que pour la commande string match. Si l’argument NomCl´e sp´ecifi´e n’existe pas, une erreur est g´en´er´ee.

registry set NomCl´e?NomValeur Donn´ees?Type??

Si NomValeur n’est pas sp´ecifi´e, la commande cr´ee la cl´e NomCl´e si celle-ci n’existe pas d´ej`a. Si NomValeur est sp´ecifi´e, elle cr´ee la cl´e NomCl´e et la valeur NomValeur si n´ecessaire. Le contenu de NomValeur est fix´e `a Donn´ees avec le type indiqu´e dans l’argument Type. Si Type n’est pas sp´ecifi´e, le type par d´efaut sera sz. Pour plus de d´etails sur le format des donn´ees renvoy´ees, voir le paragraphe Types support´es ci-dessous.

registry type NomCl´e NomValeur

Renvoie le type de la valeur NomValeur dans la cl´e NomCl´e. registry valeurs NomCl´e?Motif?

Si Motif n’est pas sp´ecifi´e, la commande renvoie une liste des noms de toutes les valeurs de NomCl´e. Si Motif est sp´ecifi´e, seuls les noms correspondant au motif sont renvoy´es. Les correspondances avec le motif sont d´etermin´ees selon les mˆemes r`egles que pour la commande string match.