puts [format {%-50s%-170s%-50s%-50s} "Test_Id" "Test_Description" "Test_Ran_Count" "Test_Result"]
puts [format {%-50s%-170s%-50s%-50s} $test_id1 "$mail_desc1" $loop_count $test_result]
puts [format {%-50s%-170s%-50s%-50s} $test_id "$mail_desc" $loop_count $test_result]
Test_Id Test_Description Test_Ran_Count Test_Result
test_id_1 To execute - test_id_1 10 PASS
test_id_2 To execute - test_id_2 10 PASS
如果test_id_2
很大,那么整个格式正在转移,根据格式行为,如果test_id小于50个字符,那么它不应该移动其他列,因为我为%-50s
提供了test_id
}。
答案 0 :(得分:2)
格式字段(Tcl借用C' s sprintf()
进行了很少的更改)有点棘手。当您使用%50s
(或%-50s
- -
只影响对齐)时,您将设置最小字段宽度。要设置最大字段宽度,您可以使用%.50s
。或者,在您的情况下,您更有可能设置最小值,最大值和对齐方式:%-50.50s
。
展示一些较窄的字段和不同长度的简单字符串:
foreach str {abc defgh ijklmnop} {
puts [format ">%-5.5s< |%-5s| /%-.5s/" $str $str $str]
}
产生此输出:
>abc < |abc | /abc/ >defgh< |defgh| /defgh/ >ijklm< |ijklmnop| /ijklm/
如您所见,左对齐,完全固定的宽度需要提供%-N.Ns
(对于某些N
)。