G gets
global


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

とすると、二行目の内容が記録されます。

2003.6.9(月) 18:44:21[編集]



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[編集]


Sakura Dictionary Ver. 1.09a
Scripted by UTANO Lime
(c)Pastel Carrot 1999-
All rights Reserved.