Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Общий паттерн нескольких строк [D7, WinXP]


Страницы:   1 2

sdubaruhnul ©   (2007-09-16 14:06:00) 

Нужно найти общий паттерн в нескольких строках, которые представляют собой имена файлов. Что конкретно подразумевается? Например, есть файлы:

test1_file1.txt
test2_file2.txt
test3_filesome.txt

Общим паттерном здесь будет строка test$1_file$2. Соответсвенно, символ $ - дело конвенциональное. И, скажем, $N - это только строка, т.е. не выделяю числа.

Идеи и представление, как это сделать при помощи автомата есть. Но хотелось бы услышать мнение Мастеров, куда здесь копать? Может у этой задачи есть другое название и готовые алгоритмы решения?


sdubaruhnul   (2007-09-17 18:59:00) [21]

> О на слабо пытаешь брать, как правило результат противоположный.

А я уже не надеюсь, поэтому констатирую. А вы, Анатолий, не могли бы ответить на [9]?


Anatoly Podgoretsky   (2007-09-17 18:32:00) [22]

> sdubaruhnul  (17.09.2007 13:39:11)  [11]

О на слабо пытаешь брать, как правило результат противоположный.


sdubaruhnul   (2007-09-17 13:39:00) [23]

Блин, как только запахло чем-то большим, чем xor, Мастера самоудалились.


Sha   (2007-09-16 15:20:00) [24]

1. Даешь определение общий паттерн
2. Даешь определение максимальный общий паттерн.
3. Решаешь задачу оптимизированным перебором (метод ветвей и границ)


sdubaruhnul   (2007-09-16 15:13:00) [25]

> Это уже другой вопрос, не совпадающий с первым

Можно подробнее? В чём отличие?


Anatoly Podgoretsky   (2007-09-16 14:47:00) [26]

> sdubaruhnul  (16.09.2007 14:37:07)  [7]

Это уже другой вопрос, не совпадающий с первым и реализация здесь сложная и чрезвычайно медленная, поскольку скользящая.


sdubaruhnul   (2007-09-16 14:37:00) [27]

Э-э, народ, вы не в ту степь поехали. Сформулирую задачу по-другому. Есть строки:


string123_hello123
stringTEST_helloTEST


Они попадают под wildcard маску string*_hello*. Вот эту маску мне и хотелось бы получить. При этом строк может быть более двух.


Сергей М.   (2007-09-16 14:34:00) [28]


> Anatoly Podgoretsky ©   (16.09.07 14:32) [5]


Да, конечно к минимальной.
Эт я в другую крайность проглючил)


Anatoly Podgoretsky   (2007-09-16 14:32:00) [29]

> Сергей М.  (16.09.2007 14:27:03)  [3]

К минимальной?


Anatoly Podgoretsky   (2007-09-16 14:32:00) [30]

> sdubaruhnul  (16.09.2007 14:19:02)  [2]

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


Сергей М.   (2007-09-16 14:27:00) [31]


> Несовпадающие части могут быть разными по длине


Что мешает привести "подопытные" строки к единой (максимальной из имеющихся) длине, дополнив их при необходимоости, скажем, пробелами ?


sdubaruhnul   (2007-09-16 14:19:00) [32]

> Если сделать XOR то нулевые символы будут представлять собой совпадающую часть

Это слишком частное решение. Несовпадающие части могут быть разными по длине.


Anatoly Podgoretsky   (2007-09-16 14:14:00) [33]

> sdubaruhnul  (16.09.2007 14:06:00)  [0]

Если сделать XOR то нулевые символы будут представлять собой совпадающую часть.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо