【问题标题】:concat variables in new lines with TCL使用 TCL 在新行中连接变量
【发布时间】:2017-09-18 10:23:06
【问题描述】:

我想连接一些基于字符串的变量,我希望它们中的每一个都在一个新行中。但是,我找不到编写代码的正确方法。这是我尝试过的:

set mensaje "Error: esta atenuacion: $att dB\n"

gset listaMensajes  [concat [gget listaMensajes] "$mensaje"]

set mensaje "Error: esta atenuacion: $att dB\n"

gset listaMensajes  [concat [gget listaMensajes] "$mensaje"]

puts "[gget listaMensajes]" 

变量 $att 在代码的不同部分采用不同的值。

我也试过了:

gset listaMensajes  [concat [gget listaMensajes] "\n" "$mensaje"] 

但它们都不起作用;我在同一行收到消息

【问题讨论】:

    标签: tcl concatenation newline string-concatenation


    【解决方案1】:

    concat 命令会去除其参数之间的空格,因此在这里用处不大。您可能想要的是join 命令。由于您使用的是非标准命令,因此我无法重新创建您的案例,但说 foo 是一个返回字符串列表的命令:

    join [foo] \n
    

    返回一个由foo 返回的字符串组成的字符串,每个字符串对都有一个换行符。

    如果您在名为bar 的变量中有一个字符串列表,这当然也适用:

    join $bar \n
    

    或者,如果您在命令替换中构建一个列表:

    join [list "foo bar" "baz qux"] \n
    

    文档: concat, join

    【讨论】:

    • 非常感谢!这行得通!在我的例子中是 gset listaMensajes [join [list "[gget listaMensajes]" "$mensaje"] \n]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多