Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Скрипт или программа, сравнение 2 файлов |

27.10.2009, 15:21
|
|
Новичок
Регистрация: 25.06.2009
Сообщений: 22
Провел на форуме: 359636
Репутация:
1
|
|
Скрипт или программа, сравнение 2 файлов
Нужен скрипт или может программа. Задача такая: есть два файла текстовых, необходимо сравнить их и то, чего не хватает в одном из них, вывести в отдельный файл.
Пример:
1-ый файл:
12345
121331
2-ой файл:
11у2323
121331
12345
56738
378арв9
Результат:
11у2323
56738
378арв9
Т.е. если есть одинаковые, но не в таком порядке как в первом файле, выводить не нужно.
Как это реализовать, просто далек от php и всего такого... Спасибо
|
|
|

27.10.2009, 16:38
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
PHP код:
$n_one = @file_get_contents('веб путь к файлу #1');
$n_two = @file_get_contents('веб путь к файлу #2');
$n_one = explode("\r\n", $n_one);
$n_two = explode("\r\n", $n_two);
$out = '';
for($i=0; $i <= count($n_one); $i++){
for($y=0; $y <= count($n_two); $y++){
if(trim($n_one[$i]) == trim($n_two[$y])){ continie; }else{
$out .= $n_two[$y].'\r\n';
}
}
echo 'done.\r\nresult:\r\n';
echo $out;
вроде так
Последний раз редактировалось Deathdreams; 27.10.2009 в 16:50..
|
|
|

27.10.2009, 16:50
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
Deathdreams c explode() у тебя не выйдет так как "\r\n"
|
|
|

27.10.2009, 16:50
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
L I G A
Спс, исправил.
Привык уже одинарные ставить.
|
|
|

27.10.2009, 16:51
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
PHP код:
<?php
$file1 = file ('18_1.txt');
$file2 = file ('18_2.txt');
$res = array_diff ($file2, $file1);
print_r ($res);
?>
вот и весь код =)
|
|
|

27.10.2009, 16:51
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Deathdreams, ну и накодил ты... Цикл в цикле...
Bal-lek, юзай самый простой вариант:
PHP код:
<?php
$file1 = array_map('trim', file('file1.txt'));
$file2 = array_map('trim', file('file2.txt'));
$diffs = array_diff($file2, $file1);
foreach ($diffs as $diff)
echo $diff . "<br>\r\n";
?>
|
|
|

27.10.2009, 16:52
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
mailbrush
То, что первым в голову пришло : )
|
|
|

27.10.2009, 18:23
|
|
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
Провел на форуме: 1284900
Репутация:
399
|
|
Сообщение от Deathdreams
mailbrush
То, что первым в голову пришло : )
Ну пузырёк вообще часто первым приходит в голову, но лучше от этого отвыкать...
|
|
|

27.10.2009, 18:40
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
А теперь представьте себе, что оперативки ~ 64 мб и у вас оба файла по 1Гб. Напишите универсальное решение, самим интересно будет 
|
|
|

27.10.2009, 20:36
|
|
Новичок
Регистрация: 25.06.2009
Сообщений: 22
Провел на форуме: 359636
Репутация:
1
|
|
ВСЕМ спасибо, ребят, сорри но я вообще нуб в php, как мне теперь организовать вывод результата либо на экран либо в файл?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|