#include<Array.au3>
$oDoc = ObjCreate("HTMLFILE")
$hFirstFile = FileFindFirstFile(StringFormat('%s\html\*.html', @ScriptDir))
If $hFirstFile = -1 Then
MsgBox(16, @ScriptName, "No files/directories")
Exit
EndIf
While 1
$iCount = 0
$sFileName = FileFindNextFile($hFirstFile)
If @error Then ExitLoop
$oDoc.open
$sHtml = FileRead(StringFormat('%s\html\%s', @ScriptDir, $sFileName))
$oDoc.write($sHtml)
$oDoc.close
$oSpan = $oDoc.getElementsByTagName("span")
Local $aPic[1000]
; проверка битых ссылок
For $i = 0 To $oSpan.length-1
If $iCount = UBound($aPic) Then
ReDim $aPic[UBound($aPic)+1000]
EndIf
$aListSpan = StringRegExp($oSpan.item($i).className, '(?<=/picture/).*?\.png|(?<=/gif/).*?\.gif', 3)
Switch UBound($aListSpan)
Case 2
If Not FileExists(StringFormat('%s\ill\gif\%s', @ScriptDir, $aListSpan[1])) Then
$aPic[$iCount] = $aListSpan[1]
$iCount +=1
EndIf
ContinueCase
Case 1
If Not FileExists(StringFormat('%s\ill\picture\%s', @ScriptDir, $aListSpan[0])) Then
$aPic[$iCount] = $aListSpan[0]
$iCount +=1
EndIf
EndSwitch
Next
$aListSpan = 0
If $iCount Then
; если есть битые ссылки записываем в файл отчёта. иначе файл не создаётся.
ReDim $aPic[$iCount]
$hFile = FileOpen(StringFormat('%s\html\%s.not_existing.log', @ScriptDir, $sFileName), 2)
For $i = 0 To UBound($aPic) -1
FileWriteLine($hFile, $aPic[$i])
Next
FileClose($hFile)
Else
; если все ссылки поправили, то при повторном анализе файл отчёта удаляется (если таковой существует)
If FileExists(StringFormat('%s\html\%s.not_existing.log', @ScriptDir, $sFileName)) Then
FileDelete(StringFormat('%s\html\%s.not_existing.log', @ScriptDir, $sFileName))
EndIf
EndIf
$oDoc.write('')
$aPic = 0
Sleep(10)
WEnd