2012-03-16 10 views
2

私は、検索しようとしているバイトのリストである変数のグループを持っています。TCLで2つの変数名を1つの名前に連結するにはどうすればいいですか?

set foo0 [list 0 1 2] 
set foo1 [list 3 4 5] 
set foo2 [list 6 7 8] 
set fooCount 3 

for { set z 0 } { $z<$fooCount} { incr z } { 
    tbf str "foo$z: foo$z" 
} 

私は、これはプリントアウトしたい:

foo0: 0 1 2 
foo1: 3 4 5 
foo2: 6 7 8 

をしかし、私は得る:

foo0: foo0 
foo1: foo1 
foo2: foo2 

私はその後、

tbf str "foo$z: $foo$z" 

に私の印刷ラインを変更しようとしたが、変数fooがないというエラーが出ます。私もfoo変数にすべてのfoo変数をコピーしようとしましたが、もう一度私は内容を取得していないようです。

答えて

6

これを試してみてください:

tbf str "foo$z: [set foo$z]" 

setコマンドは、そうでfoo0foo1としているそのトークンの値を返します。

+0

パーフェクト!ありがとう! –

0

配列を使用して、それはあまりにも簡単です:

set foo(0) [list 0 1 2] 
set foo(1) [list 3 4 5] 
set foo(2) [list 6 7 8] 
set fooCount 3 

for { set z 0 } { $z<$fooCount} { incr z } { 
    tbf str "foo($z): $foo($z)" 
} 
+0

私の場合は、実際にfoo変数をインポートしているので、foo という名前に固執しています。答えをありがとう。 –

関連する問題