gets [gets]
open コマンドで開いたファイルの次の行を読み込んで、その内容を、変数に記録します。
read コマンドだと、ファイルの全内容を読み取りますが、gets コマンドの場合は1行だけです。
set file_ID [open Test.tcl r]
gets $file_ID cnt
close $file_ID
とすると、cnt には、Test.tcl の一行目の内容が記録されます。
set file_ID [open Test.tcl r]
gets $file_ID cnt
gets $file_ID cnt
close $file_ID
とすると、二行目の内容が記録されます。
global [global]
プロシージャ内で、グローバル変数を使うときに global コマンドでグローバル宣言します。たとえば、
proc main {} {
global a
message $a
message $b
}
set a 4
set b 7
main
というスクリプトの場合、変数 a はグローバル宣言してあるので、main プロシージャ内でも使えますが、
b は宣言してないので、実行すると、
4
can't read "b" : no such variable
とエラーメッセージが出て中断します。グローバル変数以外でも、プロシージャ内でShade のプロパティを使う場合は、
グローバル宣言しておかなければなりません。
proc main {} {
global handle
message $handle
message $ordinal
}
main
を実行すると、ordinal をグローバル宣言していないので、
14712862
can't read "ordinal" : no such variable
とエラーメッセージが出て中断します。
2003.6.10(火) 03:03:27[
編集]