Войти

Показать полную графическую версию : [решено] Не удается сравнить два файла


D_Master
29-03-2009, 10:35
Всем привет!

Подскажите, пожалуйста, как правильно сравнить два текстовых файла на предмет идентичности друг другу.

#NoTrayIcon
$ipfilter = "H:\Program Files\uTorrent\ipfilter.dat"
FileOpen($ipfilter, 0)
$oldIpFilter = FileRead($ipfilter)
FileClose($ipfilter)
FileOpen(@ScriptDir & "\ipfilter.dat", 0)
$newIpFilter = FileRead(@ScriptDir & "\ipfilter.dat")
FileClose(@ScriptDir & "\ipfilter.dat")
MsgBox(64, "Old IpFilter", $oldIpFilter)
MsgBox(64, "New IpFilter", $newIpFilter)
If $oldIpFilter==$newIpFilter Then
MsgBox(64, "", "IpFilter актуален")
Else
MsgBox(64, "", "IpFilter не актуален")
EndIf
Exit
Однако, в любом случае, выскакивает окно, что IpFilter не актуален. Даже если проверяю один и тот же файл :)
В чем ошибка?

Creat0R
29-03-2009, 10:48
В чем ошибка? »
Ну хотябы в том, что FileOpen используется неверно, в справке же есть пример использования этой функции. Но при чтения всего файла, совсем не обязательно его открывать:

#NoTrayIcon

$sFile1 = "H:\Program Files\uTorrent\ipfilter.dat"
$sFile2 = @ScriptDir & "\ipfilter.dat"

$sOldIpFilter = FileRead($sFile1)
$sNewIpFilter = FileRead($sFile2)

MsgBox(64, "Old IpFilter", $sOldIpFilter)
MsgBox(64, "New IpFilter", $sNewIpFilter)

If $sOldIpFilter == $sNewIpFilter Then
MsgBox(64, "", "IpFilter актуален")
Else
MsgBox(64, "", "IpFilter не актуален")
EndIf

Exit

D_Master
29-03-2009, 10:57
Ну хотябы в том, что FileOpen используется неверно »
То есть, открывать надо в режиме 4?
Но при чтения всего файла, совсем не обязательно его открывать: »
Спасибо, всё работает :)

Creat0R
29-03-2009, 18:10
открывать надо в режиме 4 »
Нет. Я про то, что функция FileOpen() возвращает хендл (указатель), его и нужно использовать рпи чтении, см. пример в справке!




© OSzone.net 2001-2012