tezarius  Ну, если минимальный кусок равен абзацу (и нумерация абзацев упорядочена), то тогда WinMerge - излишне сложный инструмент. Но посмотреть общую логику их алгоритма нужно обязательно.  
Цитата: С чего начать? какие функции использовать?
 Начать нужно не с поиска функций, а с составления алгоритма. 
 Представьте, что каждый абзац - это строка. Тогда документ представляет из себя список строк. Значит, вам нужно сравнить два списка строк и определить, какие строки были изменены, какие - удалены, и какие добавлены. 
 Если в документе не может быть одинаковых абзацев - задача проста: 
 1. Каждый абзац старого документа сравниваете с каждым абзацем нового документа. Если они равны, устанавливаете для этих абзацев флаг "равно". 
 2. Последовательно проходите по абзацам старого документа. Находите 
подряд идущие абзацы, без флага "равно". Сравниваете их количество с количеством соответствующих абзацев из нового документа. Если количество равно, то каждый из этих абзацев был 
изменён на соответствующий абзац из нового документа. Если в старом документе количество этих абзацев меньше, чем в новом, значит, часть абзацев была изменена, а часть - удалена. Если больше - значит, часть абзацев была изменена, а часть добавлена. 
 Таким образом, для каждого абзаца из старого документа установлен один из признаков: 
 - равен абзацу из нового документа 
 - изменён в новом документе (и указатель на соответствующиё абзац в новом документе) 
 - удалён 
 в новом документе нужен только один признак: 
 - добавлен   
 И сохраняете в базу данных: для всех абзацев из старого документа, у которых не установлен признак "равен" добавляете записи с указанием признака и: 
 - для удалённых: порядкового номера абзаца в старом документе 
 - для изменённых: порядкового номера абзаца в старом документе и текста соответствующего нового абзаца 
 - для добавленных: порядкового номера абзаца в старом документе, после которого добавляется новый абзац и его текста.   
 Это приблизительно и вкратце.   
 Если в документе может быть несколько одинаковых абзацев - задача сравнения существенно усложнится.