2016-08-12 260 views
0

我正在修改gpsfeed +以在模擬器運行時將NAV字符串寫入文本文件的部分添加。這個工具是用tcl編寫的,我不知道我需要做什麼。我至今是:將多行寫入TCL中的文件

if {$prefs(udp) & $::udpOn} { 
    # opens file to write strings to 
    set fp [open "input_NAV.txt" w+] 
    # one sentence per udp packet 
    foreach line [split $::out \n] {  
    puts $fp $line 
    } 
    close $fp 
} 

現在如果UDP廣播接通,我想利用每一個NAV串播過UDP並將其寫入文件。但上面的代碼只寫入1個字符串,然後覆蓋字符串。我一直試圖添加/ n開關,但我沒有任何喜悅。

回答

2

我使用錯誤模式打開文件: w +打開文件進行讀寫。如果它存在,則截斷它。如果它不存在,請創建一個新文件。

我應該一直在使用下面的任一:只寫

一個打開的文件。如果該文件不存在,請創建一個新的空文件。在每次寫入之前將文件指針設置爲文件末尾。

a +打開文件進行讀寫。如果該文件不存在,請創建一個新的空文件。將初始訪問位置設置爲文件末尾。

+0

'R +'也可能是適當的; 'a +'在寫時具有(近似)僅追加語義。 –

1

這將是一個評論,但格式。

此代碼:

foreach line [split $::out \n] {  
puts $fp $line 
} 

等同於:

puts $fp $::out