1
私は配列を作成していますが、何らかの理由でforeachコマンドがインデックスに引用符を追加しています。TCL foreachが私のインデックスに引用符を追加しています
私は配列を初期化するために、次のコードを持っている:
SDQ1 SDQ2 SDQ3 SDQ4 SDQ5 SDQ6 SDQ7 SDQ8
しかし:中
lsort [array names regionBBox]
結果:私は、全体のリストを取得する際
# Fill the region array for the 8 regions.
set regionBBox(SDQ1) "11262.000 1558.700 15489.000 1663.000"
set regionBBox(SDQ2) "6910.000 1558.700 11137.000 1663.000"
set regionBBox(SDQ3) "1550.000 7929.260 1665.000 12159.000"
set regionBBox(SDQ4) "1550.000 12283.820 1665.000 16511.000"
set regionBBox(SDQ5) "6654.000 21241.580 11393.000 21352.000"
set regionBBox(SDQ6) "11518.000 21241.580 16257.000 21352.000"
set regionBBox(SDQ7) "21246.000 11773.100 21354.005 15999.000"
set regionBBox(SDQ8) "21246.000 7418.540 21354.000 11647.000"
ませ引用符は表示されません配列をループすると、各$ idの値に二重引用符が含まれます。中
foreach $id [lsort [array names regionBBox]] {
echo "Index = $id"
set bbox $regionBBox($id)
}
結果:
Index = "SDQ6"
Error: can't read "regionBBox("SDQ6")": no such element in array
はなぜforeachのは、引用符を追加していますか?引用符の追加を避けるにはどうすればよいですか?
いやはや!愚かなルーキーの間違い。私はIDを持っていなければなりません。 – LivingDust
'echo'はシェルコマンドです。インタラクティブなtclshセッションでは期待通りに動作しますが、tclスクリプトでは動作しません。 –