Applications graphiques à l’aide de Tcl/Tk

Applications graphiques à l’aide de Tcl/Tk

Regular expressions

Les expressions régulières sont la façon la plus puissante d’exprimer des patterns. Un pattern est une séquence de caractères littéraux, de caractères de match, de clauses de répétition, de clause alternative ou de subpattern groupés entre parenthèses. La syntaxe des expressions régulières est résumée dans un tableau. Quelques exemples: [Hh]ello: match Hello ou hello .. : toute suite de 2 carcatères quelconques [a-d] : tous les caractères compris entre a et d (inclus) [^a-zA-Z] : tous les caractères sauf les lettres majuscules ou minuscules La commande regexp fournit un accès direct pour matcher les expressions régulières. regexp ?switches? pattern string ?match sub1 sub2 …?
• La valeur retournée par regexp est 1 si il y a un match et 0 dans le cas contraire.
• switches peut prendre les valeurs -nocase (les majuscules seront considérées comme des minuscules), indices (match contiendra les indices de début et fin de match) ou — (si le pattern commence par -)

• pattern est défini comme exprimé plus haut; si le pattern contient $ ou [], il est préférable d’utiliser des accolades mais si le pattern contient des séquence backslash, il faudra utiliser des quotations pour que l’interpréteur Tcl puisse effectuer les substitutions et alors $ et [] devront être précédés de \.
• match contient le résultat de la correspondance entre string et pattern; les subi sont utilisés dans le cas de subpattern.
set env(DISPLAY) ltisun12:0.0 regexp {([^:]*):} $env(DISPLAY) match host => 1 puts « $match et $host » => ltisun12: et ltisun12 La commande regsub permet d’éditer une string sur la base du pattern matching.

Tcl dans l’environnement Unix
exec
La commande exec est utilisée pour exécuter des programmes unix à partir de scripts Tcl (Tcl fork un process pour exécuter le programme unix dans un sous-process). set d [exec date] => Wed Mar 15 14:59:28 MET 1995 La commande exec supporte toute la syntaxe des redirections et pipeline pour les I/O. set n [exec sort < /etc/passwd | uniq | wc -l 2> /dev/null] => 107
file
La commande file a plusieurs options qui permettent de vérifier l’état de fichiers dans l’environnement unix tels que leur existence, les droits d’autorisation, etc.
Les fichiers et I/O
Les commandes concernant les I/O de fichiers sont résumée dans un tableau. L’ouverture de fichier pour input/output se fait à l’aide de la commande open. open what ?access? ?permissions?
• what peut être le nom d’un fichier ou un pipeline
• access peut prendre les valeurs r (for reading), r+ (for reading and wrinting), w (for writing, truncate), w+ (for reading and wrinting, truncate), a (for writing, append) et a+ (for reading and writing, append). Pour r/r+ et a/a+, le fichier doit exister; pour w/w+, le fichier est créé s’il n’existe pas. Par défaut, c’est l’option r qui est choisie. On peut aussi utiliser les flags POSIX pour l’accès.
• permission est utilisé lors de la création d’un nouveau fichier. Par défaut il vaut 0666.
• la valeur de retour de open est l’identificateur pour l’I/O stream. Il est utilisé de la même façon que stdin, stdout et stderr.
Exemple: set fileId [open /tmp/toto w 600] puts $fileId « Hello, toto! »
close $fileId Un autre exemple plus prudent (voir catch plus loin):
if [catch {open /tmp/data r} fileId] {
puts stderr « Cannot open /tmp/data : $fileId » }
else { # Read what you want close fileId }
Enfin un exemple avec pipe: set input [open « |sort /etc/passwd » r] set contents [split [read $input] \n] close $input

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *