在一个文本下,判断数据重复!
附件中是一个游戏的数据库我读出来写在一个txt的文本里,因为经常有冲突的数据,手动排查真的挺费时间,而且有很多这种情况。在数据库里操作可能会读取上万次数据库,所以导出txt文本想从文本下手。自己在写代码对比的过程中有些迷茫,不想生成临时文件,也就是说不借助第三个文件的情况下,对比是否有冲突的路径。
有的话,则列出游戏的ID,名称,路径。
自己用_FileCountLines一行一行的读取,再每行对比,这样感觉效率低下,程序要运行挺长时间,如果再大点的数据库,那就不敢想象了。
希望同志们给些思路,代码我自己来写,谢谢。
给你一个三M的代码借鉴效率还可以#include <File.au3>
$aFile = FileOpenDialog("快速删除重复行",@ScriptDir&"\","文本文件 (*.txt)", 1 + 4)
If @error Then
MsgBox(0,0,"文件未选择",3)
Exit
EndIf
$begin = TimerInit()
Local $str='',$file_array
_FileReadToArray($aFile,$file_array)
;_ArrayDisplay($file_array)
For $i = 1 To UBound($file_array)-1
$temp=$file_array[$i]
If Not IsDeclared($temp) Then
Assign($temp, $i)
$str&=$temp&@CRLF
EndIf
Next
$dif = TimerDiff($begin)
$out_file=StringTrimRight($aFile,4)&'_已完成.txt'
if FileExists($out_file) then FileDelete($out_file)
FileWrite($out_file,$str)
ShellExecute($out_file)
WinWaitActive("")
WinSetTitle("", "", '处理'&UBound($file_array)&'行'&' 用时'&int($dif)&'毫秒')
Exit 感谢,我先消化一下,谢谢。 感谢,我先消化一下,谢谢。 回复 2# love5173
IsDeclared的作用检测变量是否被赋值,莫非以前赋过的值,IsDeclared就判定为相当于没赋值过? IsDeclared 是声明 ,是判断前面是否出现过用的,就是过滤重复的关键地方 回复 6# love5173
了解,我这边再测试,谢谢。 回复 6# love5173 #include <File.au3>
$aFile = FileOpenDialog("快速删除重复行", @ScriptDir & "\", "文本文件 (*.txt)", 1 + 4)
If @error Then
MsgBox(0, 0, "文件未选择", 3)
Exit
EndIf
$begin = TimerInit()
Local $str = '', $file_array
_FileReadToArray($aFile, $file_array)
For $i = 1 To UBound($file_array) - 1
$SS = StringSplit($file_array[$i], '&')
$temp = $SS
If Not IsDeclared($temp) Then
Assign($temp, $i)
$str &= $SS & '&' & $SS & $temp & @CRLF
Else
FileWriteLine('2.txt', $SS & "_" & $SS & '_' & $SS & ' 重复数据')
EndIf
Next用附件中的1.txt自己测试了一下,无法记录第一次声明这个变量的记录。。不知道是否有办法。
看了你的列子,又不想读到txt文件对比了,想直接在数据库里操作。
您给的代码真的很受教。
在数据库查找重复数据不是很简单的吗? 回复 9# auto
关键需要查找的数据并不是固定值,是在数据库中的一些数据,需要先将所有数据遍历一边,再进行对比。 不固定的值,也可以找出重复出来
方便提供数据库看看
已提供数据库,我刻意修改了一个路径冲突的地方,在Package的表下 本帖最后由 auto 于 2011-6-22 16:54 编辑
重复指那些字段重复?
是否找出Package.PkgName, Package.LocalPath 重复吗?
对应的ID、PkgName、LocalPath??? Package表下的LocalPatch下边的数据,是否有重复,如果重复,列出重复值一行的 PkgId 和PkgName LocalPatch 为空如何处理?该字段有很多空值
页:
[1]
2