2017-06-01 41 views
0

嗨,我有以下情況。我逐行閱讀文件;然後每個像將看起來像:2 0,3 0,4 0,9 0,11 3等;像「字符串」。每個喜歡的話都會被放入一個變量; $ line將在while循環內的每個迭代中有一組值;現在我希望能夠趕上如果線路重複或相似的一個,我們看到以前..tcl代碼捕獲文件中的重複行

MYFILE包含:

 
2 0 
3 0 
9 0 
11 3 
3 5 
2 9 
2 0 
3 5 

下面是代碼:

set in [open myFile r] 
set exline "" 
while {[gets $in line] >= 0} { 
    lappend exline $line 
    if { [lsearch $exline $line] > 0} { 
     puts "same number repeated $line" 
    } 
} 
close $in 
+0

您的問題不完全清楚,但我的猜測是,你的程序會更好地工作,如果你移動lappend調用剛纔的如果調用下方,即到如果有合適的支柱,雖然右括號之間的新線。 –

+0

謝謝,但那不行。我希望得到的結果是: – Abdi

+0

 same number repeated 2 0 same number repeated 2 0 same number repeated 3 5 same number repeated 3 5 
Abdi

回答

0

如何約:

set fid [open myFile] 
while {[gets $fid line] != -1} {dict incr lines [string trim $line]} 
close $fid 
dict for {line count} $lines {if {$count > 1} {puts "duplicated: $line"}} 
duplicated: 2 0 
duplicated: 3 5 
+0

Hi @ glen-jackman ..那麼你將如何處理兩個文件。 – Abdi

+0

嗨@ glen-jackman ..你會如何處理兩個文件呢。 一個文件具有例如一些內容: 第一文件格式: 條紋1項POS 2甲板4 1 條紋2項POS 22個甲板7 2 條3項POS 3甲板4 3 條紋4項POS 5甲板8 4 條5項POS 2臺4 5 項目POS#和甲板#號組合必須是唯一的。所以帶1和條帶5也有類似的POS#和#甲板..你怎麼能捕捉這些:1;文件內?或兩個文件的組合! 提前謝謝! – Abdi

+0

'set fid [open] | cat file1 file2「]如何? - 將首先連接文件(使用系統的'cat'可執行文件)。或者:'foreach filename {file1 file2} {set fid [open $ filename];而...;關閉$ fid}' –