我有5个不同的变量来自不同的if和循环语句,当我使用" put"将输出转换为文本文件所有字符和数字都是这样的:alphaclass112098voip
。
variables: name = alpha
category = class1
number = 12098
service = voip
我希望文件中的输出像这样,同一行上有空格。
Alpha class1 12098 voip
Beta class1 12093 DHCP SIP
此外,在某些时候,我希望通过分隔符以便将来使用。
答案 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。它为您处理棘手的边缘情况(例如,嵌入式逗号)。