2016-05-25 90 views
0

如果用戶通過對話框單擊是,我想完成一個現有的文本文件。 實際的代碼覆蓋現有的文件!Tcl寫入最後一行的文本文件

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 

是否有任何想法去到最後一個現有的行和完成文件?

問候

回答

2

您正在打開使用w訪問這會導致如果存在且被截斷的文件,如果不存在,則創建該文件。你需要做的是打開文件,訪問aa+,第一個打開一個現有的文件,並定位文件,所以你寫在最後,第二個是相同的,但創建文件,如果它不存在。

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

可能是你需要的。

或者看seektell命令,這些允許你改變在一個打開的文件的位置,

+0

謝謝先生! – ManInTheMiddle

+0

在追加模式下,您可以在寫入時僅追加(對日誌非常有用)。某些打開事物的方法需要使用POSIX樣式模式。 –

相關問題