【发布时间】:2013-05-24 11:51:45
【问题描述】:
我在使用 Tcl 时遇到了一些问题。我有一个变量,其中有一个字符串。但现在我希望这个字符串成为下一个变量的名称。
我在网上发现了一些类似的问题,但这些都是关于将变量中的值放入另一个变量中。不使用它作为变量的名称。
这里有一个示例代码来帮助解释:
foreach key [array names ::openedFiles] {
puts $::openedFiles($key)
set filename [file tail $::openedFiles($key)]
set parts [split $filename .]
set name [lindex $parts 0]
puts $name
$L1 create cell $name
set "value of $name" [ layout create $::openedFiles($key) -dt_expand -log LUN.log]
所以基本上它必须执行以下操作。该数组中有一些路径字符串。我只从没有文件扩展名的路径中得到文件的名称。
然后我想创建一个变量“cell”,它是“$name”的值。因此,当文件名是“Test”时,$name 的值将是“Test”,我想做这样的最后一行
set Test [ layout create $::openedFiles($key) -dt_expand -log LUN.log]
这样$name 的值就是新变量的名称。所以我可以用数组中所有值的名称创建一个变量。
任何帮助或指点都会很棒!
非常感谢!
【问题讨论】:
-
set $name [ layout create $::openedFiles($key) -dt_expand -log LUN.log]不工作吗? -
显然没有,因为当我想这样做时,我会继续使用下一个代码:
set cell_top [$name topcell]我收到一个错误,他找不到 $name 的选项 topcell。但是,当我只使用没有变量的名称时,它就可以了... -
我做对了吗?你有一个变量,比如
a,其中包含另一个变量的名称,比如b,你想通过引用a来分配给b。 -
不,不完全是(除非我没有理解你的正确,而不是我的错)。我有一个 var
a,其中包含值b。然后我想创建一个名为b的新变量。