回复 12# kood481748
如果上万行或数十万行的话,你这个效率也够呛.
蛋蛋兄提供的是一个相对成熟并且容易理解的方法.
既然提到效率,试试这个:
#include <File.au3>
$aFile = FileOpenDialog("快速删除重复行",@ScriptDir&"\","文本文件 (*.ini)", 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)&'_已完成.ini'
if FileExists($out_file) then FileDelete($out_file)
FileWrite($out_file,$str)
ShellExecute($out_file)
WinWaitActive("[CLASS:Notepad]")
WinSetTitle("[CLASS:Notepad]", "", '处理'&UBound($file_array)&'行'&' 用时'&int($dif)&'毫秒')
Exit
|