It Hints
Search
Close this search box.

Заме­тил такую осо­бен­ность — если в aaPanel уда­лить не нуж­ную MySQL базу, то потом создать с таким же име­нем не воз­мож­но, систе­ма гово­рит что такая база уже есть.

				
					$FileRestore = '12042024_1.txt'

For $n = 2 To FileReadLine ($FileRestore, 1)
	$ReadLine = FileReadLine ($FileRestore, $n)
	If FileExists ($ReadLine) = 1 Then
		Desitnegrator ($ReadLine)
	Else
		FileWriteLine ('e:\au3\checkfiles\log_without.txt', $ReadLine)
	EndIf

	ToolTip (13470-$n & ' - ' & $n & '.' & $ReadLine, 10, 10)
Next

Func Desitnegrator ($FileName)
	$Path = $FileName
	$File1 = "temp1"
	$File2 = "temp2"

	$ReadFile = FileOpen($Path, 16)
	If $ReadFile = -1 Then
		;MsgBox(0, "Error", "Unable to open file.")
		Exit
	EndIf

	$FileSize = FileGetSize($Path)
	$HalfSize = $FileSize / 2

	; Чтение и запись первой половины файла в первый файл
	$WriteFile1 = FileOpen($File1, 2)
	If $WriteFile1 = -1 Then
		;MsgBox(0, "Error", "Unable to open first output file.")
		Exit
	EndIf

	For $i = 1 To $HalfSize
		$byte = FileRead($ReadFile, 1)
		If @error Then ExitLoop ; проверяем, достигли ли конца файла
		FileWrite($WriteFile1, $byte)
	Next

	FileClose($WriteFile1)

	; Чтение и запись второй половины файла во второй файл
	$WriteFile2 = FileOpen($File2, 2)
	If $WriteFile2 = -1 Then
		;MsgBox(0, "Error", "Unable to open second output file.")
		Exit
	EndIf

	While True
		$byte = FileRead($ReadFile, 1)
		If @error Then ExitLoop ; проверяем, достигли ли конца файла
		FileWrite($WriteFile2, $byte)
	WEnd

	FileClose($WriteFile2)
	FileClose($ReadFile)

	; Проверка идентичности полученных файлов
	If _FileCompare($File1, $File2) Then
		;MsgBox(0, "Готово", "Данный файл двойной, заменяю оригинал.")
		FileDelete($Path)
		FileMove($File1, $Path)
		;FileCopy($File1, $Path)
		FileDelete($File2)
		FileWriteLine ('e:\au3\checkfiles\logs.txt', $Path & ' - ' & $FileSize)
	Else
		;MsgBox(0, "Готово", "Данный файл не изменен.")
		FileDelete($File1)
		FileDelete($File2)
	EndIf
EndFunc

Func _FileCompare($File1, $File2)
	Local $hFile1 = FileOpen($File1, 16)
	Local $hFile2 = FileOpen($File2, 16)
	If $hFile1 = -1 Or $hFile2 = -1 Then
		Return False
	EndIf
	Local $bEqual = True
	While True
		Local $byte1 = FileRead($hFile1, 1)
		Local $byte2 = FileRead($hFile2, 1)
		If $byte1 <> $byte2 Then
			$bEqual = False
			ExitLoop
		EndIf
		If @error Then ExitLoop
	WEnd
	FileClose($hFile1)
	FileClose($hFile2)
	Return $bEqual
EndFunc
				
			

Так как одни из самых чув­стви­тель­ных фай­лов это архи­вы — про­ве­рил на них, всё открывается.

Друзья - если вы нашли для себя что то полезное и хотите помочь проекту развиваться дальше, Вы можете задонатить любую сумму на поддержку. Деньги пойдут исключительно на оплату доменного имени, хостинга, а так же на мотивацию.

Facebook
Twitter
Email
VK
WhatsApp
Telegram