![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Общий паттерн нескольких строк [D7, WinXP]
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]
Я тебе уже сказал, что это сложная задача, по сравнению с первой постановкой.
И очень ресурсоемкая. Тратить силы на решение не интерсной для меня задачи не считаю возможным.