gpt4 book ai didi

java - TCL:将动态TCL返回给Java程序写入文件

转载 作者:行者123 更新时间:2023-12-02 03:49:39 25 4
gpt4 key购买 nike

我从 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 " \]"

我基本上会比较一堆字典,并使用 puts 输出它们之间的差异和相似之处,从而创建一个 TCL 程序。

现在,这会显示在我的 Eclipse 控制台中。如何将生成的整个 TCL 返回到 Java 并将其写入文件?我想创建一个包含动态创建的 TCL 过程的文件。

最佳答案

puts command将字符串写入 channel 。它默认写入 stdout channel ,该 channel 会发送到控制台(或发送到父进程,或发送到任何数量的其他内容,具体取决于 tclsh 程序的调用方式),但如果您明确指定哪个 channel 要写入,它会写入该内容。您说使用一个可选参数,该参数位于要写入的字符串之前(但如果您使用该参数,则位于 -nonewline 选项之后)。

我们从哪里获取写入 channel 来写入文件?来自 open command :

set theChannel [open "myFile.tcl" w]

请注意,我们在这里使用了 w 模式,因为我们将w写入文件。其余的代码可以这样写:

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一旦你完成了它。

<小时/>

专业提示:如果您要生成代码,list command可以非常有用,因为它可以精确地进行各种事情所需的正确引用,并且被定义为完全按照这种方式工作。

关于java - TCL:将动态TCL返回给Java程序写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35983489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com