我有一个来自数据库的实例列表,并且我正在考虑一些实例。我正在编写一个程序,它会给我尚未计算的实例数量;通过彼此“减去”列表来做到这一点。我看到一些实例出现在完整的数据库列表中,占列表中,并且仍然出现在错过的列表中,这对我来说意味着代码的减法部分是错误的。
此外,数据库有大约 31000 个元素,除了 300 之外几乎所有元素都被计算在内,只有大约 8 个被重复计算,这似乎很奇怪。这是我的减法过程,它从 2 个文件中读取并写入另一个文件。
这是代码:
proc checkDif {} {
set fp [open "accounted_db.tcl" r]
set file_data_accounted [read $fp]
close $fp
set fp [open "innovus_db.tcl" r]
set file_data_db [read $fp]
close $fp
foreach elem $file_data_db {dict set y $elem 1}
foreach elem $file_data_accounted {dict unset y $elem}
set res [dict keys $y]
set fileName "missed_db.tcl"
set fileId [open $fileName "w"]
foreach inst $res {
puts $fileId $inst
}
close $fileId
return [llength $res]
}