Скрипт или программа, сравнение 2 файлов

Discussion in 'PHP' started by Bal-lek, 27 Oct 2009.

  1. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Kusto понятно :) сижу тут разглядываю php команды :) писец, у меня направление прямо параллельное :) в php как свинья в апельсинах :)
     
  2. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    все работает результат вывода:

    11у2323
    56738
    378арв9


    я так думаю что ты просто файлы текстовые не так обозвал- создай их два один назови file1 второй соответственно file2 и их в ту-же дирректорию на денвере закинь
     
    1 person likes this.
  3. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    спасибо понял ошибку свою(обозвал правильно, просто указывал у себя в каждой строке по 1 цифре, из-за этого я так понял косяк был), но !!!!!!!!!
    т.к. 12345 стоит и там и там, о у меня эта строка тоже выводится... а мне не нуна выводить 12345 :)
    Спасибо тем, кто откликается ребята.
     
    #23 Bal-lek, 27 Oct 2009
    Last edited: 27 Oct 2009
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Неправильный ответ :) Каков буфер для считывания строки? Длина строки может быть и больше 1024 байта. Как определить правильный буфер - чтобы не больше, не меньше и не вылезти за пределы оперативки? Зададите с запасом 10 кб - а строчка будет ХОТЬ одна 11 кб - и все, пролёт. А если весь файл равный 1 Гб состоит из одной строки? Думайте дальше, не все так просто, как кажется.

    Еще раз условия:

    1. Оперативка = 64 мб
    2. Есть два файла, оба по 1Гб
    3. Длина максимальной строки в каждом из файлов просто напросто неизвестна. Допускается, что каждый файл может состоять из одной строки, а может и из нескольких.
    4. Цель - сравнить оба файла на идентичность текста

    Вот если вы до сих пор думаете, что это очень просто - не вопрос, скрипт в студию. Универсальный скрипт, на все случаи жизни, при любых объемах оперативки и самих файлов.

    PS: А то что не вопрос такого рода, так сразу массивы пишут свои. Фигушки
     
    #24 Pashkela, 28 Oct 2009
    Last edited: 28 Oct 2009
  5. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Кстати, можно еще так реализовать
    Есть два файла 1.txt, 2.txt
    формата
    111:
    222
    3333с
    Надо удалить слова из файла 2.txt если они есть в файле 1.txt
    мне главное чтобы оставались только уникальные строки, даже если порядок строк разный, т.е. я так понимаю необходимо сравнение каждой строки одного файла с каждой строкой другого и если строка одинаковая - удалить её из файла 2.txt
     
  6. demond

    demond Member

    Joined:
    5 Nov 2008
    Messages:
    101
    Likes Received:
    22
    Reputations:
    5
    сравнения файлов на различия в linux можно провести командой diff
     
  7. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    у меня не стоит линукс
     
  8. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Pashkela
    Как вариант, сравнивать md5 строк.

    я прав?
    Или вопрос в другом заключается
     
  9. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Ты не прав, ибо:
    1. Надо вывести уникальные строки, а как ты с помощью md5 выведешь уникальные?
    2. Чтоьы md5 файла узнать, надо открыть его и считать данные, в чем и состоит вопрос.

    Pashkela, ну тогда по одному символу =\
     
  10. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Ребят, это конечно хорошо что вы мне тему апаете :) мне бы скриптик... :rolleyes:
     
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Без диапазона? Просто от начала и до конца файла? Файл 1 Гб, сам прикинь, сколько такой скрипт работать будет. Даже с потоками
     
  12. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Не знаю, был ли вариант, fgets'ом считывать файл.

    Хотя мы не знаем какого размера строка...ы
     
  13. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Заюзать мапирование? )
     
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Ну для начала узнать длину строки, наверное :) А еще раньше просто понять, что такое строка. А вообще вариантов может быть миллион наверное. Главное чтобы работало
     
  15. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Deathdreams, krypt3r вы сейчас со мной разговариваете? :):):):):)
    Если насчет строки мне вопрос был, то скажу что в каждой строке примерно по 40 символов +- 10
     
    #35 Bal-lek, 28 Oct 2009
    Last edited: 28 Oct 2009
  16. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    Тебе дали полностью рабочий скрипт- ты видел я выложил результат без всяких 12345 (я даже непредставляю что за глюк у тедя на денвере)
     
  17. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    капец, вроде с файликами после переустановки все нормально сработало, теперь закинул в один файл 2000 строк во второй 1000 - выводит только 2 строчки и все, в чем м.б. проблема? Может в денвере косяк какой? но вроде качал нормальный, по ссылке с мейла пришедшей после запроса на скачку
     
    #37 Bal-lek, 28 Oct 2009
    Last edited: 28 Oct 2009
  18. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Bal-lek, стукни 674542, обсудим :) накодю на С++
     
  19. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    проблемма в том что пока скрипт необработает ПОЛНОСТЬЮ оба файла- он невыведет тебе ничего на экран- (такая вот зараза пых) просто будет показывать что страница грузиться- для этого надо просто время и терпение
     
    2 people like this.
  20. Bal-lek

    Bal-lek New Member

    Joined:
    25 Jun 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Ребята, всем спасибо, нашел програмку которая полностью удовлетворяет требованиям, называется Ultra Compare Professional.