2016-03-06 57 views
0

我有5个不同的变量来自不同的if和循环语句,当我使用“put”输出到文本文件时,所有字符和数字都是这样的:alphaclass112098voip。其中TCL输出与空间

variables: name = alpha 

category = class1 

number = 12098 

service = voip 

我想要在文件中的输出像这样在同一行上的空格。

Alpha class1 12098 voip 

Beta class1 12093 DHCP SIP 

此外,在某些时候,我想通过分隔符为未来的目的。

+1

请显示您的代码 –

回答

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。它为你处理棘手的边缘情况(例如,嵌入的逗号)。