![]() |
Скрипт или программа, сравнение 2 файлов
Нужен скрипт или может программа. Задача такая: есть два файла текстовых, необходимо сравнить их и то, чего не хватает в одном из них, вывести в отдельный файл.
Пример: 1-ый файл: 12345 121331 2-ой файл: 11у2323 121331 12345 56738 378арв9 Результат: 11у2323 56738 378арв9 Т.е. если есть одинаковые, но не в таком порядке как в первом файле, выводить не нужно. Как это реализовать, просто далек от php и всего такого... Спасибо |
PHP код:
|
Deathdreams c explode() у тебя не выйдет так как "\r\n"
|
L I G A
Спс, исправил. Привык уже одинарные ставить. |
PHP код:
|
Deathdreams, ну и накодил ты... Цикл в цикле...
Bal-lek, юзай самый простой вариант: PHP код:
|
mailbrush
То, что первым в голову пришло : ) |
Цитата:
|
А теперь представьте себе, что оперативки ~ 64 мб и у вас оба файла по 1Гб. Напишите универсальное решение, самим интересно будет :)
|
ВСЕМ спасибо, ребят, сорри но я вообще нуб в php, как мне теперь организовать вывод результата либо на экран либо в файл?
|
Цитата:
|
просто у меня ничего из этого не работает, названия файлов указал свои ес-но, денвер стоит :)
используя код krypt3r выводит на экран Array ( [2] => 2 ) при использовании кода mailbrush пустой экран и ничего нету в папке Спасибо за ответы :) |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Bal-lek в файлах есть что то? |
да, в первом
1 2 3 во втором 3 2 4 1 |
ясен пень что ничего небудет а где функция открытия файлов fopen() и закрытия после записи в него?- fclose() тебе не готовую программу дали а направление в котором ее до ума довести
P.S. Прошу прощение- просто не посмотрел внимательно код- думал результат в файл сохраняеться |
Kusto а зачем так нервничать, я никого не заставляю отвечать, и зачем писать сюда
Цитата:
Цитата:
Кто не хочет не отвечайте, никого ен заставляю!!! |
Цитата:
|
Цитата:
|
Kusto понятно :) сижу тут разглядываю php команды :) писец, у меня направление прямо параллельное :) в php как свинья в апельсинах :)
|
все работает результат вывода:
11у2323 56738 378арв9 я так думаю что ты просто файлы текстовые не так обозвал- создай их два один назови file1 второй соответственно file2 и их в ту-же дирректорию на денвере закинь |
спасибо понял ошибку свою(обозвал правильно, просто указывал у себя в каждой строке по 1 цифре, из-за этого я так понял косяк был), но !!!!!!!!!
т.к. 12345 стоит и там и там, о у меня эта строка тоже выводится... а мне не нуна выводить 12345 :) Спасибо тем, кто откликается ребята. |
Цитата:
Еще раз условия: 1. Оперативка = 64 мб 2. Есть два файла, оба по 1Гб 3. Длина максимальной строки в каждом из файлов просто напросто неизвестна. Допускается, что каждый файл может состоять из одной строки, а может и из нескольких. 4. Цель - сравнить оба файла на идентичность текста Вот если вы до сих пор думаете, что это очень просто - не вопрос, скрипт в студию. Универсальный скрипт, на все случаи жизни, при любых объемах оперативки и самих файлов. PS: А то что не вопрос такого рода, так сразу массивы пишут свои. Фигушки |
Кстати, можно еще так реализовать
Есть два файла 1.txt, 2.txt формата 111: 222 3333с Надо удалить слова из файла 2.txt если они есть в файле 1.txt мне главное чтобы оставались только уникальные строки, даже если порядок строк разный, т.е. я так понимаю необходимо сравнение каждой строки одного файла с каждой строкой другого и если строка одинаковая - удалить её из файла 2.txt |
сравнения файлов на различия в linux можно провести командой diff
|
у меня не стоит линукс
|
Pashkela
Как вариант, сравнивать md5 строк. я прав? Или вопрос в другом заключается |
Цитата:
1. Надо вывести уникальные строки, а как ты с помощью md5 выведешь уникальные? 2. Чтоьы md5 файла узнать, надо открыть его и считать данные, в чем и состоит вопрос. Pashkela, ну тогда по одному символу =\ |
Ребят, это конечно хорошо что вы мне тему апаете :) мне бы скриптик... :rolleyes:
|
Цитата:
|
Не знаю, был ли вариант, fgets'ом считывать файл.
Хотя мы не знаем какого размера строка...ы |
Заюзать мапирование? )
|
Ну для начала узнать длину строки, наверное :) А еще раньше просто понять, что такое строка. А вообще вариантов может быть миллион наверное. Главное чтобы работало
|
Deathdreams, krypt3r вы сейчас со мной разговариваете? :):):):):)
Если насчет строки мне вопрос был, то скажу что в каждой строке примерно по 40 символов +- 10 |
Цитата:
|
Ну ябы сделал на говнокоде так:
Открываем файл,читаем до первого "\r\n" или аналога(не суть важно),далее счетаем количество символов в строке,переводем в байты,считываем строку,сравниваем с аналогом во 2 докуменнте.В общем мы теряемслишком дохера времени.Проше установить линукс и заюзать дифф |
капец, вроде с файликами после переустановки все нормально сработало, теперь закинул в один файл 2000 строк во второй 1000 - выводит только 2 строчки и все, в чем м.б. проблема? Может в денвере косяк какой? но вроде качал нормальный, по ссылке с мейла пришедшей после запроса на скачку
|
Цитата:
Или же писать это дело на компиле,ибо на php писать такие тулзы это зло :( |
Bal-lek, стукни 674542, обсудим :) накодю на С++
|
| Время: 22:21 |