带空间的TCL输出

带空间的TCL输出,tcl,tk,Tcl,Tk,我有5个不同的变量来自不同的if和loop语句,当我使用“put”将输出放入文本文件时,所有字符和数字都是这样的:alphaclass112098voip。在哪里 variables: name = alpha category = class1 number = 12098 service = voip 我希望像这样在文件中输出,在同一行上有空格 Alpha class1 12098 voip Beta class1 12093 DHCP SIP 在某些时候,为了将来的目的,我还想

我有5个不同的变量来自不同的if和loop语句,当我使用“put”将输出放入文本文件时,所有字符和数字都是这样的:
alphaclass112098voip
。在哪里

variables: name = alpha

category = class1

number = 12098

service = voip
我希望像这样在文件中输出,在同一行上有空格

Alpha class1 12098 voip

Beta class1 12093 DHCP SIP

在某些时候,为了将来的目的,我还想使用分隔符。

处理这个问题的最简单方法是构造一个表示记录的Tcl列表。您可以使用
lappend
逐段执行此操作,也可以使用
list
同时执行所有操作。或者把它们混在一起

foreach name $names category $categories number $numbers service $services {
    set record [list $name $category]
    lappend record $number
    lappend record $service
    puts $record
}
这以Tcl易于解析的格式显示了每一行的记录(如果名称中有空格,您就会明白我的意思)。要使用分隔符来分隔值,则
join
命令非常有用:

    puts [join $record $delimiter]
默认分隔符是空格,但请尝试使用
来查看其工作原理



如果您正在生成CSV文件,请务必在Tcllib中使用。它为您处理棘手的边缘情况(例如,嵌入逗号)。

请显示您的代码