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.