Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: zeridon в Dec 11, 2007, 21:21 Сортиране на музика
Понеже сме били много сериозни фенове на дос 4.0 имаме прилино голяма колекция от файлове по 10тина файла в папка. Преди две седмици сте си купили чисто нов огромен диск, инсталирали сте си любимата система и сега искате да си сортирате музиката. Хубавото е че тя е много добре описана с тагове. Искаме от директорията в която са нашите дублиращи се файлове по 10тина в папка искаме да ги подредим в красива структура изходна структура на файловете source/ source/dir1/ source/dir1/file012.mp3 целева структура dest/ dest/Artist 1/ dest/Artist 1/Good Album/ dest/Artist 1/Good Album/Artist 1 - Very Ugly Song.mp3 Решението на задачата подлежи на тестване със тестов комплект файлове тестов комплект: http://imbuza.no-ip.org/~zeridon/bashmajstora3/mp3testset.tar.gz подис: http://imbuza.no-ip.org/~zeridon/bashmajstora3/mp3testset.tar.gz.asc Референтно решение: http://imbuza.no-ip.org/~zeridon/bashmajstora3/mp3organizer.sh Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: VladSun в Dec 12, 2007, 16:17 Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: romeo_ninov в Dec 12, 2007, 17:26 Цитат Писна ми вече - сигурно има бъгчета, ама ... Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: VladSun в Dec 12, 2007, 17:40 Бях забравил да мина към паметта, а не да седя в стека
Че с тая рекурсия ... точно за това ще се хванете Хех не бях писал на С от толкоз времеее... различно е Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: tarator в Dec 12, 2007, 18:27 Ако задачата беше да се създаде файлова система, която да представя музиката така, бих участвал Сегашната задача просто не е достатъчно интересна
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: VladSun в Dec 13, 2007, 01:26 Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: zeridon в Dec 13, 2007, 10:45 Ами tarator действай. И на мен ще ми е интересно да видя решението.
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: gat3way в Dec 13, 2007, 12:56 Сигурно ще пропусна, имам едни доволно отвратителни занимания на главата
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: VladSun в Dec 13, 2007, 13:56 Малки поправки в скрипта на zeridon. Има голям проблем с шпациите в имената на файловете + проверка за ID3 таг:
Код
:) Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: radoulov в Dec 14, 2007, 13:44 C Awk:
Код
<!--EDIT|radoulov|Дек. 14 2007,14:46--> Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: tarator в Dec 15, 2007, 00:09 Кода стана твърде дълъг, все пак ще се опитам да го постна. Използва libid3tag и libspfs от проекта npfs на sourceforge (писан от колега-булгар).
Програмата се пуска: mp3fs srcdir Остава в background и чака на порт 1234 (може да се промени с опция -p). Файловата система се монтира: mount -t 9p 127.0.0.1 /mnt/mp3 -o port=1234 Код
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: tarator в Dec 15, 2007, 00:12 Между другото примерното решение няма да работи правилно ако:
- някое от полетата не е дефинирано - някое по полетата съдържа / Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: gat3way в Dec 15, 2007, 00:51 Случайно да се казваш Лъчезар Йонков
Лигавя се де Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: tarator в Dec 15, 2007, 01:12 Как се казвам аз не е много ясно, но колегата написал v9fs, npfs и spfs определено се казва така
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: gat3way в Dec 15, 2007, 01:19 Просто видях че имаш влечение към план9 идеите, пък и ползваш framework-a, а и разработващият тези неща е българин, та предположих
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: tarator в Dec 15, 2007, 01:27 Като се има предвид, че около два пълнителя за Калашников ще са достатъчни за да очистят голяма част от потребителите на Plan9, броят на българи, които са му фенове е доста голям Във fortune файла на Plan9 има поговорка "Never smack a Bulgarian"
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: radoulov в Dec 16, 2007, 20:15 Още една shell версия:
Код
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: zeridon в Jan 04, 2008, 17:23 И така дойде време да теглим чертата и да видим кой какъв какво и как
Равносметката Имаме 3-ма участници vladsun, radulov i tarator с общо 5 решения. 3 скриптови и две компилирани. 4 от тях що годе нормални и едно дето ми издуха главата. По идейност смятм че едноличен победител е tarator (аплодисменти, хвърчащи цветя и жени). Кратък разбор по задачки vladsum - mp3o.c Стилистично добре издържана, добре четима, има си опцийка колко да е шумна. Добра идея е ограничението за дълбочина на рекурсията. Не чак толкова добра идея е да се използва собствено парсене на ID3 информацията защото може да се намира на доста места (дори v1) vladsum - mp3o.pl Perl защо ли не съм учуден Разчита се на външен модул (дано той да се справя добре). С итератора идеята е добра. Няма хендлинг на грешки (освен ако в използваните модули няма свестен). Като цяло изглежда добре и си бачка добре. radulov - mp3awk.sh The power of awk. Кратко сладко, семпло, ефективно. Има умно използване на специални променливи от средата. И единственотко което не мога още да зацепя е страшно странният сепаратор на полета който се ползва (но работи) radulov - mp3bash.sh Bash Magic . Интересно попълване на полетата, но полето за артист не се изчита цялото. По стандарт е 30 знака. tarator - mp3fs.c Doctor where is my head!!! Аммм ако може такова нали да не коментирам. Бях останал с впечатлението че се изгъбарка но не би ... организация на музика посредством файлова система. Кодът изглежда подреден, макар че стилът не е от най-четливите. Цялостен е до толкова до колкото библиотеките се оправят с проблемите. Тъй като не съм много запознат със spfs не мога да съм по точно аргументиран. Крайната ситуация За мен лично победител в този кръг е tarator - поздравления. Моля сега всички да си изкажат тяхното мнение. пс: Очаквайте следващия кръг. Само да драсна някакво референтно решение. Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: tarator в Jan 04, 2008, 21:39 Виновник за лошия стил е софтуера на форума, стилът ми не се различава от стандартния на Линукс ядрото.
Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: VladSun в Jan 06, 2008, 18:45 Решението на tarator определено ми харесва - заради него се зачетох в този български проект И аз гласувам за неговото решение
По отношение на забележката за парсването на ID3 тага на zeridon - познай кой сорс съм разглеждал за повече инфо за ID3 тага - id3 В този смисъл, моето С решение работи толкова добре, колкото и решенията с bash/awk ползващи id3 инструмента. Титла: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: VladSun в Jan 06, 2008, 18:46 Цитат Виновник за лошия стил е софтуера на форума, стилът ми не се различава от стандартния на Линукс ядрото.Мдам, всеки път и аз забравям за това. Решението е tabs-to-spaces :) Титла: Re: Задача 3 - 13.11.2007 - 27.12.2007 Публикувано от: Acho в Jan 17, 2023, 08:14 Аман от простотийки, темата е от 2006 година деа. Само спамове.
|