TCL: return 动态 TCL 到 Java 程序写入文件
TCL: return dynamic TCL to Java programme to write into file
我正在从 Java 调用 TCL 脚本,我在其中动态创建 TCL,如下所示:
puts " # generated comment"
puts " set myDict \[dict replace $otherDict \"
foreach {key value} [dict get $abcDict] {
puts "$key $value"
;# here, more TCL is generated
}
puts " \]"
我基本上是比较一堆dict,然后用puts
输出它们之间的异同,从而创建一个TCL程序。
现在,它显示在我的 Eclipse 控制台中。我怎样才能 return 将整个生成的 TCL Java 写入文件?我想创建一个包含动态创建的 TCL 程序的文件。
puts
command 将字符串写入通道。它默认写入 stdout
通道,该通道进入控制台(或父进程,或任何数量的其他事物,具体取决于 tclsh 程序的调用方式),但如果您明确说明要写入哪个通道,它改为写入。您说使用一个可选参数,该参数在 之前 要写入的字符串(但在 -nonewline
选项之后,如果您正在使用它的话)。
我们从哪里获得写入文件的通道?来自 open
command:
set theChannel [open "myFile.tcl" w]
请注意,我们在这里使用了 w
模式,因为我们要 write 文件.剩下的代码可以这样写:
puts $theChannel " # generated comment"
puts $theChannel " set myDict \[dict replace $otherDict \"
foreach {key value} [dict get $abcDict] {
puts $theChannel "$key $value"
# here, more TCL is generated
}
puts $theChannel " \]"
完成后别忘了close $theChannel
。
Protip:如果您正在生成代码,list
command 可以非常有用,因为它提供了您需要的各种正确的引用类型事情,并且被定义为完全按照这种方式工作。
我正在从 Java 调用 TCL 脚本,我在其中动态创建 TCL,如下所示:
puts " # generated comment"
puts " set myDict \[dict replace $otherDict \"
foreach {key value} [dict get $abcDict] {
puts "$key $value"
;# here, more TCL is generated
}
puts " \]"
我基本上是比较一堆dict,然后用puts
输出它们之间的异同,从而创建一个TCL程序。
现在,它显示在我的 Eclipse 控制台中。我怎样才能 return 将整个生成的 TCL Java 写入文件?我想创建一个包含动态创建的 TCL 程序的文件。
puts
command 将字符串写入通道。它默认写入 stdout
通道,该通道进入控制台(或父进程,或任何数量的其他事物,具体取决于 tclsh 程序的调用方式),但如果您明确说明要写入哪个通道,它改为写入。您说使用一个可选参数,该参数在 之前 要写入的字符串(但在 -nonewline
选项之后,如果您正在使用它的话)。
我们从哪里获得写入文件的通道?来自 open
command:
set theChannel [open "myFile.tcl" w]
请注意,我们在这里使用了 w
模式,因为我们要 write 文件.剩下的代码可以这样写:
puts $theChannel " # generated comment"
puts $theChannel " set myDict \[dict replace $otherDict \"
foreach {key value} [dict get $abcDict] {
puts $theChannel "$key $value"
# here, more TCL is generated
}
puts $theChannel " \]"
完成后别忘了close $theChannel
。
Protip:如果您正在生成代码,list
command 可以非常有用,因为它提供了您需要的各种正确的引用类型事情,并且被定义为完全按照这种方式工作。