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-27 22:13:00) [1]

> Arm79 ©   (21.09.07 15:31) [32]

Спасибо, я качал 15 мб, чтобы убедиться, что такой функциональности, которую я хочу сделать, там нет. Автор Тотала может не беспокоиться, а своё "по моему это задача для регулярных выражений" надо превратить в уверенное "это не задача для регулярных выражений".


Arm79   (2007-09-21 15:31:00) [2]


> Увижу где эту идею - прокляну.


Total commander, Переименование группы файлов :)
Кристиану Хислеру место в аду обеспечено :)

Замена подстроки StringReplace

А вообще по моему это задача для регулярных выражений.


webpauk   (2007-09-20 20:13:00) [3]


> sdubaruhnul   (16.09.07 14:06)  

интересная задача
завтра попробую решить


sdubaruhnul   (2007-09-20 18:23:00) [4]

> Да, внимательностью я никогда не отличался, увы.(

Это точно.

> Не могу найти тут различий в имени исполнителя. :

Зайди на Discogs и найди отличие.


KSergey   (2007-09-19 16:36:00) [5]

Придирка:

> sdubaruhnul   (18.09.07 17:57) [25]
> 01. Paul Van Dyke - Beautiful Place (Airwaves Mix).mp3
> 02. Paul Van Dyke - Beautiful Place (Paradise Mix).mp3
> Я вижу, что какой-то плохой человек неправильно
> написал название исполнителя и это нужно исправить.

Да, внимательностью я никогда не отличался, увы.
Не могу найти тут различий в имени исполнителя. :(

> Увижу где эту идею - прокляну.

Гы :)
Супер-пупер мега идея как всегда.


Zeqfreed   (2007-09-19 10:21:00) [6]

> sdubaruhnul   (18.09.07 17:57) [25]

Вариант 1. На основании введенного шаблона строить регулярное выражение, согласно которому видоизменять оставшиеся удовлетворяющие ему имена. Предусмотреть наиболее вероятные варианты.

Вариант 2. Выявляем измененную часть по оригинальному имени и введенному шаблону. Заменяем выявленную часть во всех остальных именах не затрагивая остального.


Shirson   (2007-09-18 23:05:00) [7]

>{RASkov}
Регулярные выражения работают с текстом по маске.
А тут нужно к нескольким тесктам подобрать общую маску.


{RASkov}   (2007-09-18 18:19:00) [8]

> [25] sdubaruhnul   (18.09.07 17:57)

А вот эта штука - TRegExpr не поможет тебе?


sdubaruhnul   (2007-09-18 17:57:00) [9]

> Sha ©   (18.09.07 01:22) [24]

OK, спасибо.

> Германн ©   (18.09.07 00:56) [23]

> А зачем "нужно" не сказано?

А это уже идея, которую я не хочу выдавать. Но для вас исключение.

Удобное переименовывание файлов. Например, у меня есть группа файлов:

01. Paul Van Dyke - Beautiful Place (Airwaves Mix).mp3
02. Paul Van Dyke - Beautiful Place (Paradise Mix).mp3
...

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

Путь 1. Выделяем все файлы, Ctrl+R, пишем "Paul Van Dyke" исправить на "Paul van Dyk".

Путь 2 - Путь сдубарухнувшего (The way I am!). Выделяем все файлы, жмём Ctrl+Q, появляется текстовое поле примерного содержания

$1. Paul Van Dyke - Beautiful Place ($2).mp3

которое я исправляю на

$1. Paul van Dyk - Beautiful Place ($2).mp3

жму пипку Enter и вся группа файлов изменяется.

Увижу где эту идею - прокляну.


Sha   (2007-09-18 01:22:00) [10]

> sdubaruhnul   (17.09.07 22:11) [19]
> Всяких разных авторов читать не хочу. Конкретных можете назвать?

Хорошиая, книга, но есть ошибки в алгоритмах:
Романовский И.В. - Алгоритмы решения экстремальных задач

Или ищи в инете "метод ветвей и границ" - это твой случай.


Германн   (2007-09-18 00:56:00) [11]


> Anatoly Podgoretsky ©   (17.09.07 20:32) [18]
>
> Термин хороший :-)
>

Хороший, но не совсем правильный. Экстремальность - это, имхо, практическая сторона решения. А тут, опять же имхо, либо тупость, либо (скорее всего) "партизанство" © АП
:-)

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

А зачем "нужно" не сказано?


Германн   (2007-09-18 00:47:00) [12]


> Можно ключевое слово в первом посте, из которого следует,
>  что сравнение посимвольное?

Ключевого слова может и нет, но пример приведен неудачный.
В отличие от [7]

> string123_hello123
> stringTEST_helloTEST
>
>
> Они попадают под wildcard маску string*_hello*

пример в [0] подпадает под маску string?_hello*. А это вполне нормально решаемая задача. Задача же [7] как принято говорить "общего аналитического решения" не имеет. Но, как и известная "задача трёх тел" вполне может иметь одно или несколько "частных решений".
Если тебя твоя задача интересует в смысле общего решения, то трать на нее годы сам. Если - частного, озвучь практический смысл этой задачи.


Anatoly Podgoretsky   (2007-09-17 23:30:00) [13]

> sdubaruhnul  (17.09.2007 22:12:20)  [20]

Он четко назвал как эта задача называется.


sdubaruhnul   (2007-09-17 22:12:00) [14]

Вторая часть поста предназначалась для Sha ©   (17.09.07 20:30) [17]


sdubaruhnul   (2007-09-17 22:11:00) [15]

Anatoly Podgoretsky ©   (17.09.07 19:39) [16]

> А в первой постановке сравнение посимвольное.

Можно ключевое слово в первом посте, из которого следует, что сравнение посимвольное?

> По элгоритмам решения экстремальных задач  много чего написано
в умных книжках всякими разными авторами. Тебе лень читать?


Спасибо за то, что определили эту задачу как экстремальную.

Всяких разных авторов читать не хочу. Конкретных можете назвать?


Anatoly Podgoretsky   (2007-09-17 20:32:00) [16]

Термин хороший :-)


Sha   (2007-09-17 20:30:00) [17]

> sdubaruhnul   (17.09.07 13:39) [11]
> Блин, как только запахло чем-то большим, чем xor, Мастера самоудалились.

По элгоритмам решения экстремальных задач  много чего написано
в умных книжках всякими разными авторами. Тебе лень читать?


Anatoly Podgoretsky   (2007-09-17 19:39:00) [18]

Скольжением шаблона, потребуется побуквенное сравнение со сдвигом, зависимость логарифмическая.
А в первой постановке сравнение посимвольное.
Проанализируй свои два шаблона, разница огромная. При том ты привел простейший случай, чтобы было понятно.
Вот почему вторая задача значительно сложнее и для поиска потребует больших временных ресурсов.
Первую задачу легко решить наложением по XOR двух строк, предварительно нормализовав по длине, при том количество строк не имеет роли.


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

> Anatoly Podgoretsky ©   (17.09.07 19:20) [14]

Анатолий, вы читать умеете? В номере 9 я спрашиваю, чем постановка в [0] отличается от постановки [7]?


Anatoly Podgoretsky   (2007-09-17 19:20:00) [20]

> sdubaruhnul  (17.09.2007 18:59:13)  [13]

Я тебе уже сказал, что это сложная задача, по сравнению с первой постановкой.
И очень ресурсоемкая. Тратить силы на решение не интерсной для меня задачи не считаю возможным.


Страницы:   1 2

Наверх

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