FAQ Revised: Friday 26 August 2011 14:10:31
set VerboseFlag false set FileToRead "-" set Usage "Usage: concord \[-v] \[-f]" foreach arg $argv { switch -glob -- $arg { -v {set VerboseFlag true} -f* {set FileToRead [string range $arg 2 end]} -h {puts stderr $Usage; exit} default {error "bad argument: $arg\n$Usage"} } }
-a montre comment on recupère le contenu d'une variable, -e , -r, etc montre comment on fixe une variable booleenne pour chaque option.
set var "" foreach a $argv { switch -glob -- $a { -e {set echo 1} -r {set raw 1} -i {set isig 1} -p {set bindpriv 1} -a {set var [lindex $argv 1] set argv [lrange $argv 1 end] puts $var } -- break -* {puts stderr "Unknown switch $a"} default break } set argv [lrange $argv 1 end] } puts $var
foreach file [glob *] { $file }
for {set i 0} {$i < 15} {set i [expr $i+1]} {}
foreach item {name email address phone} {puts $item }
puts [ string map { ok "guy ok" } "Je te remplace ok?" ] Je te remplace guy ok?
Attention, ceci remplace toutes les occurences trouvées.
array set a { "é" "e" "è" "e" } foreach i [ array names a] { puts $a($i) } e e
Attention les tableau ne sont pas forcément dans l'ordre. Il faut utiliser lsort
puts [ array size a ] 5
puts { ceci est un texte sur plusieures lignes 3 meme } puts "ok"
résultat:
D:\tcl\test>e.tcl ceci est un texte sur plusieures lignes 3 meme ok
set a "ma valeur" puts "ceci est un texte sur plusieures lignes 3 meme $a "Si on désire faire des substitutions de variables, on remplace les accolades par des guillemets.
ceci est un texte sur plusieures lignes 3 meme ma valeur
expr {int(rand()*20)}
On peut en déduire les fonctions suivantes:
proc RandomInteger0 {max} { return [expr {int(rand()*$max)}] }
proc RandomInteger {max} { return [expr {int(rand()*$max) + 1}] }
proc RandomIntegerminmax {min max} { return [expr {int(rand()*($max-$min+1)+$min)}]
set srcId [open "read.tcl" r] while {[gets $srcId line] > -1} { puts $dstId ">> $line" } close $srcId
set srcId [open "read.tcl" r] set dstId [open "readinew.tcl" w] while {[gets $srcId line] > -1} { puts $dstId ">> $line" } close $srcId close $dstId
place permet de positionner le widget où on le désire.
button .hello -text "Quitter" -command { exit } place .hello -x 240 -y 120 wm title . "Quit button" wm geometry . 320x160+100+100
set row 0 foreach item {name email address phone} { label .$item-label -text "${item}:" entry .$item-entry -width 20 grid .$item-label -row $row -column 0 -sticky e grid .$item-entry -row $row -column 1 -columnspan 2 -sticky "ew" incr row } grid columnconfigure . 1 -weight 1
# create the user interface elements. scrollbar .h -orient horizontal -command ".list xview" scrollbar .v -command ".list yview" listbox .list -selectmode single -width 20 -height 10 \ -setgrid 1 -xscroll ".h set" -yscroll ".v set" label .label -text "File Selected:" -justify left entry .e -textvariable fileSelected # manage the widgets using the grid geometry manager. grid .list -row 0 -column 0 -columnspan 2 -sticky "news" grid .v -row 0 -column 2 -sticky "ns" grid .h -row 1 -column 0 -columnspan 2 -sticky "we" grid .label -row 2 -column 0 grid .e -row 3 -column 0 -columnspan 3 -sticky "we" grid columnconfigure . 0 -weight 1 grid rowconfigure . 0 -weight 1 # initialize the listbox with the contents of the current directory foreach file [glob *] { .list insert end $file }
set image [image create photo -file tcl.gif -width 200 -height 200] label .t.l -image $image
Copyright (c) 2005-2011 Jean-Louis BICQUELET
This list of questions and answers was generated by makefaq.