Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Не удается сравнить два файла (http://forum.oszone.net/showthread.php?t=136162)

D_Master 29-03-2009 10:35 1077751

Не удается сравнить два файла
 
Всем привет!

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

Код:

#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 1077755

Цитата:

Цитата D_Master
В чем ошибка? »

Ну хотябы в том, что 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 1077761

Цитата:

Цитата Creat0R
Ну хотябы в том, что FileOpen используется неверно »

То есть, открывать надо в режиме 4?
Цитата:

Цитата Creat0R
Но при чтения всего файла, совсем не обязательно его открывать: »

Спасибо, всё работает :)

Creat0R 29-03-2009 18:10 1078155

Цитата:

Цитата D_Master
открывать надо в режиме 4 »

Нет. Я про то, что функция FileOpen() возвращает хендл (указатель), его и нужно использовать рпи чтении, см. пример в справке!


Время: 19:00.

Время: 19:00.
© OSzone.net 2001-