За последние 24 часа нас посетили 18140 программистов и 1661 робот. Сейчас ищут 1747 программистов ...

Нужен алгоритм "интелектуального" сравнения текста

Тема в разделе "Решения, алгоритмы", создана пользователем guest2013, 22 июл 2011.

  1. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Вот появилась задача.... нужно сравнивать один текст с другим и определять список отличий. Ну.. т.е. как это сделано, например, в MsWord (Меню\Сервис\Сравнить документ) или в TortoiseSvn (сравнение текстовых файлов разных ревизий) или еще где....

    На выходе сравнения нужно получать информацию о том, где что то было добавлено, где изменено и где удалено.

    Наверное самостоятельно написать похожий алгоритм очень тяжело и долго. Нужно же не только сравнивать правильно, но еще и быстро. Т.е. алгоритм должен быть хорошо оптимизирован. Наверняка, грамотные пацаны уже давно собаку съели на этом деле. Думаю, должны где то быть следы их творений.

    Если кто сталкивался с такой задачей, киньте ссылочку (а еще лучше исходник). Исходники меня устроят на любом (более менее читабельном) языке программирования.


    "С уваженьем... дата... подпись... Отвечайте нам, а то... Если вы не отзоветесь - мы напишим в спорт-лото" =)
     
  2. Павел Хрушков

    Павел Хрушков Активный пользователь

    С нами с:
    12 май 2011
    Сообщения:
    34
    Симпатии:
    0
    Мне кажется можно сделать так:
    Сделать из строки массив, а дальше стравнивать значения с одинаковыми ключами. Если разные, то занести в переменную этот символ (из первого массива например). В итоге вы получите строку с разными символами