是否有一种方法在tcl中避免在写入文件的末尾使用换行符?
puts $file $line
Run Code Online (Sandbox Code Playgroud)
谢谢.
首先,puts除非您还指定了该-nonewline选项,否则始终写入您给出的最后一个参数,后跟换行符.
在循环中编写行时,您不希望在最后一行的末尾有换行符,您实际上使用的\n是行分隔符而不是行终止符.要在不构建单个字符串中的所有数据的情况下执行此操作,最简单的方法是使用额外的变量来保存分隔符并使其开始为空.
# Initially
set separator ""
Run Code Online (Sandbox Code Playgroud)
# Inside the loop
puts -nonewline $file $separator$line
set separator "\n"
Run Code Online (Sandbox Code Playgroud)
将(希望本地)变量设置为常量值是每次迭代需要做的少量额外工作,并且很容易确保这样做是正确的.
(当然,如果你真的在写一个文件,你也可以使用seek或chan truncate在循环之后修补补丁.虽然这很难做到 - "换行符"并不总是写成单个字节,具体取决于fconfigure -translation选项 -并且根本不适用于非文件通道.在这种情况下不推荐!)
| 归档时间: |
|
| 查看次数: |
5847 次 |
| 最近记录: |