Tcl 写入最后一行的文本文件

Tcl write to textfile in the last row

如果用户通过对话框单击“是”,我想完成现有的文本文件。 实际代码覆盖现有文件!

set answer [tk_messageBox -message "file already exists, do you want to add more?" -title "Configuration Check" -type yesno -parent .example1]
    case $answer {
    yes {
     set fid [open $::filename2/testfile.txt w]
     puts $fid "last row"
    close $fid 

有没有办法转到现有的最后一行并完成文件?

此致

您正在使用 w 的访问权限打开文件,这会导致文件存在时被截断,文件不存在时被创建。您需要做的是使用 aa+ 的访问权限打开文件,第一个打开现有文件并定位文件,以便您在最后写入,第二个执行相同但创建文件如果不存在。

set fid [open $::filename2/testfile.txt a+]

可能是你需要的。

或者查看 seektell 命令,这些命令允许您更改打开文件中的位置,