TCL输出空间

时间:2016-03-06 21:13:21

标签: tcl tk

我有5个不同的变量来自不同的if和循环语句,当我使用" put"将输出转换为文本文件所有字符和数字都是这样的:alphaclass112098voip

variables: name = alpha

category = class1

number = 12098

service = voip

我希望文件中的输出像这样,同一行上有空格。

Alpha class1 12098 voip

Beta class1 12093 DHCP SIP

此外,在某些时候,我希望通过分隔符以便将来使用。

1 个答案:

答案 0 :(得分:0)

处理此问题的最简单方法是构造一个代表记录的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中的csv package。它为您处理棘手的边缘情况(例如,嵌入式逗号)。