$sFileName = "Test.txt"
$sFilePath = @ScriptDir & "\"
$sFile = $sFilePath & $sFileName
$iRet = _FileDeleteDuplicateLines($sFile, 100)
$iExtended = @extended
If $iRet = 1 And $iExtended > 0 Then
MsgBox(64, "Results", StringFormat("В файле <%s> удалено дублирующихся строк: %i", $sFileName, $iExtended))
ElseIf $iExtended = 0 Then
MsgBox(64, "Results", StringFormat("В файле <%s> нет дублирующихся строк.", $sFileName))
ElseIf @error = 1 Then
MsgBox(48, "Ошибка", StringFormat("Файл <%s> не найден.", $sFileName))
ElseIf @error = 2 Then
MsgBox(48, "Ошибка", StringFormat("Ошибка при попытке записи в Файл <%s>.", $sFileName))
EndIf
Func _FileDeleteDuplicateLines($sFile, $iCaseSense=0)
If Not FileExists($sFile) Then Return SetError(1)
Local $sFRead = FileRead($sFile)
Local $aFSplit = StringSplit(StringStripCR($sFRead), @LF)
Local $sFileContent = "", $iExtended = 0, $sLastChars = StringRight($sFRead, 2)
;Проходим весь массив, и проверяем каждую строку
For $i = 1 To $aFSplit[0]
If $aFSplit[$i] = "" Then ContinueLoop
;Тут делаем проверку в переменной, в которую скапливаются строки (не дублирующиеся)
If Not StringInStr($sFileContent, $aFSplit[$i] & @CRLF, $iCaseSense) Then
$sFileContent &= $aFSplit[$i] & @CRLF
Else
$iExtended += 1
EndIf
Next
If $sLastChars <> @CRLF Then $sFileContent = StringTrimRight($sFileContent, 2)
;Пишем в файл уже без дублей
Local $hFOpen = FileOpen($sFile, 2)
If $hFOpen = -1 Then Return SetError(2)
FileWrite($hFOpen, $sFileContent)
FileClose($hFOpen)
Return SetExtended($iExtended, 1)
EndFunc