Проверяем равенство файлов

Description: Уроки по скриптингу
Moderator: SJplayer

SJplayer M
Topic author, Модератор
Модератор
Avatar
SJplayer M
Topic author, Модератор
Модератор
Posts: 196
Joined: 25 May 2013
With us: 11 years 9 months

#1by SJplayer » 9 Jun 2013, 19:10

Проверяем равенство файлов
Автор: pavelost

Решил рассказать, как можно с легкостью проверить содержимое файлов. То есть, одинаковое ли оно, или разное.
Итак, для начала:
В include, или вверх вашего мода/скрипта:

Code: Select all

new OPSTR[2][500]; 
stock bool:operator==(File:f1,File:f2

    if 
flength(f1) != flength(f2) *then return false
    for ;
fread(f1,OPSTR[0]), fread(f2,OPSTR[1]); do 
        if 
strcmp(OPSTR[0],OPSTR[1],true)!=*then return false
    return 
true
}  


Теперь можно приступить соответственно к проверке наших файлов. Делается это очень просто, пример:

Code: Select all

public OnFilterScriptInit() 

    new 
File:mf1,File:mf2// Объявляем 2 переменные типа File 
    
mf1=fopen("f1.txt",io_read); // Открываем для чтения первый файл 
    
mf2=fopen("f2.txt",io_read); // Открываем для чтения второй файл 
    
if mf1==mf2 *then // Конструкция mf1==mf2 проверяет содержимое файлов. Если они равны, возвращает 1. Иначе - 0. 
        
print("Содержимое файлов одинаковое"); 
    else 
        print(
"Содержимое файлов разное"); 
    
fclose(mf1); // Закрываем первый файл 
    
fclose(mf2); // Закрываем второй файл 
    
return 1
}  


Return to “Уроки”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest