Creat0R
Цитата:
Дело вот в чём, браузер не всегда затирает нужные закладки, иногда, если были удалены заглавы (#URL) двух закладок (блоков) идущих подряд, то он удаляет иногда и ту закладку которая идёт выше этих двух. Может всё же как то можно чтобы уже сразу весь блок удалять?
|
Сказал же, другого не будет

... Лучше воспользоваться твоим утверждением о фиксированном формате блока и чуть переделать существующий:
1. перенес
IF в код функции - это необязательно, но оптимизирует поиск дублей,
2. добавил удаление остальных строк блока (в обратном порядке!).
Код:

#include <File.au3>
$File = "c:\test.txt"
Dim $FileLines
_FileReadToArray ($file, $FileLines)
; Возвращаем массив из дублирующихся записей
$DupLines = _DupURLsInArray ($FileLines)
; Страховка от пустого массива если дублей нет
If $DupLines [0][0] >0 Then
For $i=$DupLines [0][0] To 1 Step -1
_FileWriteToLine ($File, $DupLines [$i][0] +3, "", 1)
_FileWriteToLine ($File, $DupLines [$i][0] +2, "", 1)
_FileWriteToLine ($File, $DupLines [$i][0] +1, "", 1)
_FileWriteToLine ($File, $DupLines [$i][0] , "", 1)
_FileWriteToLine ($File, $DupLines [$i][0] -1, "", 1)
_FileWriteToLine ($File, $DupLines [$i][0] -2, "", 1)
_FileWriteToLine ($File, $DupLines [$i][0] -3, "", 1)
_FileWriteToLine ($File, $DupLines [$i][0] -4, "", 1)
Next
EndIf
; Возвращает двумерный массив со счетчиком, содержащий только дубли
Func _DupURLsInArray (ByRef $array)
Local $i, $i, $res [1][2] = [[0,0]]
; рабочий массив для отметки обработанных дублей
Local $flags [$array [0] +1]
For $i=1 To $array [0]
If StringLeft ($array [$i],5) = @TAB & "URL=" Then
For $j=$i+1 To $array [0]
If $flags [$j] <> 1 Then
If $array [$i] = $array [$j] Then
ReDim $res [$res [0][0]+2][2]
$res [0][0] = $res [0][0] +1
$res [$res [0][0]][0] = $j
$res [$res [0][0]][1] = $array [$j]
$flags [$j] = 1
EndIf
EndIf
Next
EndIf
Next
Return $res
_ArraySort ($res, 0, 1, 0, 2)
EndFunc
Цитата:
чтобы за каждое твоё оставленное сообщение (пусть даже по всему форуму), автоматом оно обозначалось бы как “Полезное сообщение” - оно так и есть
|
не переживай - это пройдет... 