| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Показать разницу между 2 строками |
| Автор: Suppir 22.4.2011, 17:23 |
| Есть две строки: О тарифе на услуги по передаче электрической энергии по сетям ОАО "Лесопромышленная холдинговая компания "Коношалес" О тарифе на услугу по передаче электрической энергии по сети ОАО "Лесопромышленная холдинговая компания "Коношалес" Необходимо визуально показать разницу между двумя строками. Как-нибудь так: О тарифе на услуги по передаче электрической энергии по сетям ОАО "Лесопромышленная холдинговая компания "Коношалес" О тарифе на услуг<у> по передаче электрической энергии по сет<и> ОАО "Лесопромышленная холдинговая компания "Коношалес" Уже голову сломал, не знаю как это сделать |
| Автор: alezzz 22.4.2011, 17:51 |
| Algorithm::Diff не подойдет? |
| Автор: KSURi 22.4.2011, 18:43 |
| diff работает построчно. Смотрите на программу wdiff и алгоритм, который в ней реализован. |
| Автор: arto 22.4.2011, 20:45 |
| split "\\s+" или split "" |
| Автор: DurRandir 22.4.2011, 22:47 |
| String::Diff ? |
| Автор: mishnik 1.5.2011, 20:52 |
| Suppir, я бы разбил на массив по слову в массиве и, если слово не совпадает, то обрамлять <услугу> слова пока научитесь сравнивать, а там и до букв дойдет;)) |
| Автор: SkoobyDoo 1.5.2011, 23:27 | ||||
Suppir, мне кажется то, что предложил DurRandir, как раз ваш случай
на выходе
|
| Автор: Suppir 2.5.2011, 12:21 |
| SkoobyDoo, спасибо. А можно ли сделать то же самое, но с помощью Algorithm:diff ? Просто string:diff нет в стандартном ActivePerl. |
| Автор: mishnik 2.5.2011, 12:30 |
| Suppir, в strawberry есть, Larry Wall именно им рекомендует пользоваться, activeperl - все-таки плох |
| Автор: Suppir 2.5.2011, 12:35 |
| mishnik, дело в том, что мне нужно будет распространить скрипт по клиентам. У них стоят Perl 5.8, 5.10 и выше, в основном ActiveState (я раньше рекомендовал им). Устанавливать модули 95% пользователей не умеет (особенно, если требуется компилятор). Поэтому все скрипты пишу таким образом, чтобы хватило стандартного ActivePerl... Добавлено @ 12:37 Strawberry я пробовал, когда он только появился. Оказалось, что поиск-замена с регулярными выражениями работает в нем на 30 - 50% медленней, чем в ActivePerl. Возможно, сейчас ситуация и исправилась, кто знает. p.s. если ставить Strawberry, то какой лучше: тот что на оф. сайте или тот что с Padre? |
| Автор: shamber 2.5.2011, 13:00 |
| Suppir, а написать простенький скрипт для установки модуля с cpan, или локального зеркала если инета нет? |
| Автор: Suppir 2.5.2011, 13:18 |
| shamber, никогда не пробовал |
| Автор: mishnik 2.5.2011, 13:36 | ||||
| Suppir, я бы ставил c http://padre-perl-ide.googlecode.com/files/strawberry-plus-padre-0.63.msi и далее с обязательным запуском строки
и далее ставим любой модуль
|
| Автор: shamber 2.5.2011, 13:44 |
| mishnik, зачем ему падре на клиентах? |
| Автор: Suppir 2.5.2011, 14:21 |
| Кстати, насколько я понял, этот padre также основан на Scintilla, как и SciTE. |
| Автор: SkoobyDoo 2.5.2011, 17:43 | ||
Padre написан на perl + wxWidgets. |