如何組織一個使用TCL的循環來搜索列表的每個元素是否存在於文件或其他列表中,如果不存在則返回不匹配的元素。如何在文件中搜索列表中的每個元素的存在
0
A
回答
0
如果您正在檢查的內容數量遠遠少於文件中的行數/標記數量,最好使用關聯數組的功能來執行檢查,因爲這可以通過線性掃描(關聯陣列快速)。
proc checkForAllPresent {tokens tokenList} {
foreach token $tokens {
set t($token) "dummy value"
}
foreach token $tokenList {
unset -nocomplain t($token)
}
# If the array is empty, all were found
return [expr {[array size t] == 0}]
}
然後,我們需要做的只是一個小標準節,從文件中獲取行/標記並通過檢查器運行它們。假設我們正在處理行:
proc getFileLines {filename} {
set f [open $filename]
set data [read $f]
close $f
return [split $data "\n"]
}
set shortList [getFileLines file1.txt]
set longList [getFileLines file2.txt]
if {[checkForAllPresent $shortList $longList]} {
puts "All were there"
} else {
puts "Some were absent"
}
它可能不如歸去的缺席線列表(return [array names t]
),而不是一切是否不存在(與一般檢查「是一切有」正在與llength
做),因爲它提供了更多有用的信息。 (通過更多的工作,您可以生成更多關於當前內容的信息,但是這會使代碼更加複雜,並且使事情變得不那麼清晰。)
(當搜索時,請注意線上的前導和尾隨空白很重要。所有的精確匹配在這裏,或者使用string trim
)
用的詞代替線工作真的很容易。你只需要稍微不同的代碼就可以從文件的讀入內容中提取令牌。
return [regexp -all -inline {\w+} $data]
其他都是一樣的。
+0
非常小的改進:'set data [read -nonewline $ f]' –
相關問題
- 1. 如何根據列表中的元素搜索文件?
- 2. 搜索列表中的元素列表
- 3. 列表在另一個列表中的搜索元素
- 4. 如何搜索在XML文件中的兩個連續元素
- 5. 在列表中搜索元素Python
- 6. Drools中列表中的搜索元素
- 7. 如何在文件列表中搜索同一行上存在的多個值?
- 8. 如何將每個節點存儲在列表中的二叉搜索樹中?
- 9. 搜索列表中的元素
- 10. 搜索列表的元素
- 11. 如何在Excel的每個工作表中搜索特定列
- 12. 在某個值後搜索列表中的最小元素
- 13. 在Python中搜索某個元素和字符串內的元素的列表
- 14. 搜索MySQL中另一個列表中的列表中的任何元素
- 15. 如何將列表中的每個元素與R中另一個列表中的每個元素分開?
- 16. Python:如何在xml文件中搜索元素列表然後打印它們
- 17. 如何將每個元素的列表保存在.txt文件中,每行一個?
- 18. 搜索列表中的元素,如果沒有找到,則在另一個列表中搜索
- 19. 如何返回Python中列表中存在的多個元素的索引?
- 20. 在列表中搜索元素的索引
- 21. 搜索元元素列表
- 22. 在R中的數據框的列中搜索多個元素
- 23. 如何繪製每個元素在列表中的次數
- 24. 如何比較列表中的每個元素與另一個列表中的每個元素?
- 25. 如何從列表中讀取元組中的每個元素
- 26. 如何緩存輸入列表的響應列表中的每個元素
- 27. 如何搜索列表元素,STL C++
- 28. Scheme:在列表和子列表中搜索元素
- 29. 如何在文件列表中搜索文件名
- 30. 搜索元素在Java中
你能澄清你的問題嗎?我不明白你想要做什麼。任何例子? – Jerry
我有2個文件:file1,file2。 file1的長度
user3383125
好吧,好多了!什麼是一個元素?文件中有一行?你有沒有嘗試過什麼? – Jerry