当使用从文件中调用的变量时,打印变量名本身.如何解决这个问题



我有以下场景:

<>之前2000:: $ var/222000:400:: $ var/222000:800:: $ var/22之前

我想在文本文件中存储上述3行。依次调用,打印1到15,如下图所示。

<>之前2000:: 1/222000:: 2/222000:: 3/222000:: 4/222000:: 5/22...2000:: 15/22之前

当我从文件中导入每一行时,它不会像上面那样打印。它打印变量名本身,如下所示。

<>之前2000:: $ var/222000:: $ var/22之前

请指导我,如何解决这个问题。

谢谢,Balu p .

TCL有一个名为subst的命令,它可以做您想做的事情。您所要做的就是设置var的值,然后调用subst:

set fileHandle [open data.txt]
while {[gets $fileHandle line] != -1} {
    for {set var 1} {$var <= 15} {incr var} {
        puts [subst -nocommand $line]
    }
}
<标题> 讨论
  • while循环将逐行读取文件,直到文件
  • 结束。
  • 在while循环中,我将变量var设置为1。15
  • 然后在打印出来之前调用subst进行替换
<标题> 更新

根据Glenn Jackman的优秀建议,我用-nocommand更新了代码,以防止命令扩展,这可能为恶意代码打开大门。

最新更新