HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Скрипт или программа, сравнение 2 файлов
  #1  
Старый 27.10.2009, 15:21
Bal-lek
Новичок
Регистрация: 25.06.2009
Сообщений: 22
С нами: 8883679

Репутация: 1
По умолчанию Скрипт или программа, сравнение 2 файлов

Нужен скрипт или может программа. Задача такая: есть два файла текстовых, необходимо сравнить их и то, чего не хватает в одном из них, вывести в отдельный файл.
Пример:
1-ый файл:
12345
121331

2-ой файл:
11у2323
121331
12345
56738
378арв9

Результат:
11у2323
56738
378арв9


Т.е. если есть одинаковые, но не в таком порядке как в первом файле, выводить не нужно.
Как это реализовать, просто далек от php и всего такого... Спасибо
 
Ответить с цитированием

  #2  
Старый 27.10.2009, 16:38
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами: 9213376

Репутация: 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..
 
Ответить с цитированием

  #3  
Старый 27.10.2009, 16:50
L I G A
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
С нами: 9362947

Репутация: 1196


По умолчанию

Deathdreams c explode() у тебя не выйдет так как "\r\n"
 
Ответить с цитированием

  #4  
Старый 27.10.2009, 16:50
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами: 9213376

Репутация: 278
По умолчанию

L I G A
Спс, исправил.

Привык уже одинарные ставить.
 
Ответить с цитированием

  #5  
Старый 27.10.2009, 16:51
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами: 10021597

Репутация: 905


По умолчанию

PHP код:
<?php
  $file1 
file ('18_1.txt');
  
$file2 file ('18_2.txt');
  
$res array_diff ($file2$file1);
  
print_r ($res);
?>
вот и весь код =)
 
Ответить с цитированием

  #6  
Старый 27.10.2009, 16:51
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 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";

?>
 
Ответить с цитированием

  #7  
Старый 27.10.2009, 16:52
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами: 9213376

Репутация: 278
По умолчанию

mailbrush
То, что первым в голову пришло : )
 
Ответить с цитированием

  #8  
Старый 27.10.2009, 18:23
Gray_Wolf
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
С нами: 9042754

Репутация: 399
По умолчанию

Цитата:
Сообщение от Deathdreams  
mailbrush
То, что первым в голову пришло : )
Ну пузырёк вообще часто первым приходит в голову, но лучше от этого отвыкать...
 
Ответить с цитированием

  #9  
Старый 27.10.2009, 18:40
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

А теперь представьте себе, что оперативки ~ 64 мб и у вас оба файла по 1Гб. Напишите универсальное решение, самим интересно будет
 
Ответить с цитированием

  #10  
Старый 27.10.2009, 21:01
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Цитата:
Сообщение от Pashkela  
А теперь представьте себе, что оперативки ~ 64 мб и у вас оба файла по 1Гб. Напишите универсальное решение, самим интересно будет
Как вариант - считывать по одной строке fgets.
Цитата:
Сообщение от Bal-lek  
просто у меня ничего из этого не работает, названия файлов указал свои ес-но
Надеюсь, ты не открываешь скрипт в браузере? Всмысле напряму, с компа. Сервер юзаешь?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[FAQ] BIOS Cthulchu "Железо" 9 17.11.2009 12:17
Сетевой этикет (Перед тем, как задать вопрос хакеру) satana-fu Статьи 7 21.10.2009 07:40
Фейки dgonik777 Уязвимости Mail-сервис 34 14.06.2009 04:01
прикол пришел на асю mesejj Болталка 11 01.05.2009 21:27



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.