
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
20.09.2016, 17:08
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
Нужно сравнить два похожих текста и подсветить отличающиеся части, например как это делает Araxis Merge. Попробовал погуглить, но гуглятся лишь алгоритмы сравнения типа одинаковые/разные, меряющиеся производительностью. А мне нужно, например, на выходе получить два массива, в которых чередуются одинаковые и разные куски исходных строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2016, 17:18
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
diff чем не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2016, 17:20
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
Возможно, тебе подойдут алгоритмы поиска [наибольшей] общей подстроки? Нашёл (есссно, вменяемо некороткие), вырезал (есссно запомнив, откуда), нашёл, вырезал... а что останется - то и есть различия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2016, 17:35
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
White Owldiff чем не устраивает? дифф из цигвина не сравнивает кирилицу вроде? или в ютифи8 он её сравнивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2016, 17:52
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
White Owldiff чем не устраивает?а это что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2016, 18:06
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
AntonariyWhite Owldiff чем не устраивает?а это что?утилита такая из стандартного набора GNU распространяющаяся в исходниках во всех дистрибутивах линуксов. Тебе ж алгоритм нужен? Ну так возьми и прочитай работающий пример. https://www.gnu.org/software/diffutils/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.09.2016, 21:58
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
AntonariyWhite Owldiff чем не устраивает?а это что? в первую очередь алгоритм поиска совпадающей подцепочки максимальной длины или же старая добрая юниксовая утилита ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 06:21
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
собственно алгоритм - http://www.angusj.com/delphi/textdiff.html но работает _построчно_ для "подсветить отличающиеся части, например как это делает Araxis Merge" придется допиливать - перед скармливанием алгоритму разбивать текст _пословно_ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 08:56
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
Antonariy, ex1 abc def gkm & abc def 123 gkm Согласно вашей логике 123 будет подсвечено. ex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 11:10
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
SashaMercuryex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно?будет подсвечено 123 в обеих строках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 11:23
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
command.comсобственно алгоритм - http://www.angusj.com/delphi/textdiff.html но работает _построчно_ для "подсветить отличающиеся части, например как это делает Araxis Merge" придется допиливать - перед скармливанием алгоритму разбивать текст _пословно_не подходит, нужно подсвечивать и куски слов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 11:31
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 12:57
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
ага, только мне самому нужно такое в html забацать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 14:21
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 14:42
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
На гитхабе что-то было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 14:52
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
Antonariyне подходит, нужно подсвечивать и куски слов.ты бы разобрался получше сначала алгоритм работает с двумя списками (последовательностями) неких сущностей (например, строк или символов или каких-то кусков текста), сравнивая их посущностно (покусочно) разбивка на эти куски - вне ответственности алгоритма, ему на вход подаются предварительно подготовленные последовательности. если сразу скормить ему отдельные символы - на выходе будет полная каша. имеет смысл сначала дать ему пару текстов, разбитых на строки, затем - пары _несовпадающих_ групп строк, разбитых на слова, а уже затем, если нужно - пары _несовпадающих_ слов посимвольно, чтобы получить подсветку отдельных символов, а не слов целиком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 14:55
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
AntonariySashaMercuryex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно?будет подсвечено 123 в обеих строках. А почему не def? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 15:49
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
SashaMercuryAntonariyпропущено... будет подсвечено 123 в обеих строках. А почему не def?потому что abc 123 def и abc def отличаются лишь отсутствием 123. в общем, сделал на алгоритме наибольшей общей подстроки по совету Akina, всем спасибо. работает не идеально, но ко всему, чему нужно, внимание привлекает: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.09.2016, 18:47
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
Да, делал сам похожую штуку. Есть разные алгоритмы создания диффов - они отличаются используемой эвристикой, т.к. "честный" дифф достаточно тяжел вычислительно. На что следует обратить внимание: - https://ru.wikipedia.org/wiki/Наибольшая_общая_подстрока - https://ru.wikipedia.org/wiki/Расстояние_Левенштейна - обобщить для удаления и вставки подстрок вместо отдельных символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.09.2016, 02:41
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
AntonariySashaMercuryпропущено... А почему не def?потому что abc 123 def и abc def отличаются лишь отсутствием 123. в общем, сделал на алгоритме наибольшей общей подстроки по совету Akina, всем спасибо. работает не идеально, но ко всему, чему нужно, внимание привлекает: строки не такие. А такие: abc 123 def и abc def 123 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.09.2016, 10:09
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
SashaMercuryAntonariyпропущено... потому что abc 123 def и abc def отличаются лишь отсутствием 123. в общем, сделал на алгоритме наибольшей общей подстроки по совету Akina, всем спасибо. работает не идеально, но ко всему, чему нужно, внимание привлекает: строки не такие. А такие: abc 123 def и abc def 123а если бы были abc def 123 и abc 123 def, то подсветилось бы def. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.09.2016, 10:45
|
|||
|---|---|---|---|
Поскажите алгоритм сравнения строк |
|||
|
#18+
Antonariyесли бы были abc def 123 и abc 123 def, то подсветилось бы def.В рамках задачи на поиск отличающихся вставок это имхо некорректно. SashaMercuryex2 abc 123 def gkm & abc def 123 gkm Будет ли что-то подсвечено в данном примере, и что именно? Мне кажется, что корректная подсветка должна быть такой: abc 123 def gkm | abc def 123 gkm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.09.2016, 11:31
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
AkinaМне кажется, что корректная подсветка должна быть такой: abc 123 def gkm | abc def 123 gkm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.09.2016, 11:33
|
|||
|---|---|---|---|
|
|||
Поскажите алгоритм сравнения строк |
|||
|
#18+
AkinaМне кажется, что корректная подсветка должна быть такой: abc 123 def gkm | abc def 123 gkm а почему не такой вариант? abc 123 def gkm | abc def 123 gkm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1340598]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
140ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 421ms |

| 0 / 0 |
