我有以下场景:
<>之前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
更新了代码,以防止命令扩展,这可能为恶意代码打开大门。