Форум » Прочие темы » Traders Tool: Catalogs Comparer » Ответить

Traders Tool: Catalogs Comparer

Wild User: Программа для сравнения музыкальных каталогов в формате XLS. Позволяет искать дубликаты в пределах одного / двух разных файлах или отсутствующие в одном и имеющиеся в другом альбомы. По сути, облегчает составление вишлиста и поиск дубликатов. Наличие установленного MS Excel не требуется... Скриншот - http://www.wild_user.fatal.ru/TT_Catalogs_Comparer.html Программа - http://www.wild_user.fatal.ru/music_soft/TT_Catalogs_Comparer_2.rar Справка - http://www.wild_user.fatal.ru/music_soft/Comparer_help.rar Просьба высказывать мнения, пожелания, советы и сообщения о багах тут, по e-mail или ICQ 246825708. P.S. УБЕДИТЕЛЬНЕЙШАЯ просьба - при описании найденных ошибок, указывайте по возможности подробно суть ошибки, желательно с примерами, на которых эти ошибки проявляются (приветствуется наличие сравниваемых файлов или их части), какие настройки были выставлены (можно прислать ini-файл программы), а также версию программы и операционной системы.

Ответов - 60, стр: 1 2 3 All

Wild User: 2me-laman Если у тебя последняя версия, то кроме цвета, в таблице результата есть служебная колонка, последняя, с заголовком "REASON". Она при сохранении не исчезает. Если альбом добавлен по причине более высокого битрейта, там будет пометка - "High Bitrate". Если исполнитель есть в поисковом списке - "Searched", альбомы с неопределённым битрейтом пометятся как - "??? Bitrate". Также возможны их комбинации.

me-laman: Да точтно... соррии... не заметил сразу... а я еще хотел предложить что-то подобное... ты прямо мысли читаешь... :)

Wild User: Очередной закид софтины на сервер... На этот раз без версий. Добавлено - Приём ярлыка эксель файла по драг-дропу (это надо мне, ибо ярлык на мой каталог всегда подрукой) Отображение процента в трее (Удобно, когда программа свёрнута) Несколько улучшено быстродействие при сравнении. (Найдено "слабое" звено :)) Как обычно, найдена и прибита пара глюкофф... и, возможно, добавлено ещё...


Wild User: Закинута v.2.2b Глюкофиксы + Добавлена отключаемая фишка проверки вхождения для исполнителя. Пример: Cathedral Cathedral Serpents Gold CD1 Cathedral Cathedral Serpents Gold [CD 1] (Serpents Treasure) Будут считаться одинаковыми Также часто попадается примерно такое "обрезание" названия- Even Song Of Man's First Disobedience - Expulsion From The Divine Abode Even Song Of Man's First Disobedience Такое различие нечёткое сравнение не "возьмёт", а проверка вхождения даст положительный результат. В принципе это позволит выявлять совпадения и для "довесков" значений, не внесённых в список игнорируемых слов. По-умолчанию проверяется только первое вхождение, но испытание показало, что лучше поставить ещё одну галку для выбора проверки первого вхождения либо вхождения вообще. Например, имеем два альбома и дигипак из этих двух альбомов. Winter Into Darkness Winter Eternal Frost Winter Into Darkness - Eternal Frost Использование только первого вхождения не "поймает" в дубликаты альбом Eternal Frost, в то время как НЕпервое вхождение - "поймает" Т.е. с точки зрения программы все эти три альбома будут одинаковыми... Надеюсь понятно объяснил, если есть какие мнения - высказывайте

Wild User: v2.2.1 Добавлено вышеописанное, немного упорядочены настройки + всякие мелочи...

Syren aureola kaos: Есть небольшой глюк: при сравнении не всегда отсееваются игнор позиции.

Wild User: Спасибо за поднятие топика! Больше ничего не могу сказать, ибо не телепат и не в курсе, что у Вас там в игнор списке находится и из чего оно не отсеивается...

Syren aureola kaos: К примеру ввожу в игнор группы с названием Limp bizkit, linkin park, ну и тому подобные. При сранении каталогов в результатах всёравно появляются эти группы, но не всегда, где-то половину игнор листа он фильтрует.

Wild User: В игнор список слендует вносить не НАЗВАНИЯ ИСПОЛНИТЕЛЕЙ, а ТИПЫ АЛЬБОМОВ, такие как EP, Demo, CD5, Live, Bootleg, Digipak, e.t.c. Нужно немного подробнее осветить подробности сравнения в хэлпе, тут моя недоработка...

DIF': Попробовал сделать сравнение в master файле 10.000 позций в слэйве 18.000 в итоге когда прошло сравнение и нажал на сохранения результата, то через некоторое время произошла ошибка Excel (упс, облом :-) ) в итоге в буфер копернул всё, заметил, что жрет 116 мегов оперативки при таком сранении

Wild User: DIF' пишет: через некоторое время произошла ошибка Excel (упс, облом :-) ) Наверное ты сохранял с сохранением оформления. Такое бывает, пока не знаю как переделать что бы избавиться. Происходит только на некоторых файлах. Рекомендую использовать простое сохранение в Эксель, либо через буфер. Про память - проверю, может утечка где, хотя вроде не замечал такого... P.S. Проверил только что при сравнении двух каталогов 10000 и 12500. Диспетчер показал ~25 mb при сравнении и 19 - после. А ты где смотрел - на вкладке где процессы или где быстродействие?

UberWolf: Тоже есть похожие нарекания. Сравнивал два небольших списка (вишлисты), далее загрузил достаточно большой каталог (2.7мб) - и TT:CC сожрал 118мб памяти.

Wild User: Ещё раз повторю вопрос - где смотрите "сожранную память", на какой вкладке Диспетчера задач? И ещё интересует, в какой момент происходит такое потребление - в момент загрузки каталогов, в процессе сравнения или по-окончании сравнения. Проверяю у себя на двух одинаковых каталогах по 30000 позиций в режиме поиска одинаковых позиций (то есть в результат также попадают 30000 позиций). Итого - в памяти "висят" три таблицы по 30000 позиций (Master, Slave и Результат). Мой диспетчер показал ~65 Mb.

UberWolf: Wild User пишет: Ещё раз повторю вопрос - где смотрите "сожранную память", на какой вкладке Диспетчера задач?Так вроде ясно сказал: "и TT:CC сожрал 118мб памяти" , т.е. на вкладке с процессами. И ещё интересует, в какой момент происходит такое потребление - в момент загрузки каталогов, в процессе сравнения или по-окончании сравнения. Во время загрузки каталогов (а это занимает время - система целерон 1,7 / 256mb ОЗУ) показатель начинает ползти вверх, по окончании загрузки остаётся на достигнутом уровне. И если необходимо, другие подробности: в случае, который я описывал, участвовало два каталога без особых извращений с оформлением; в одном один лист с количеством позиций менее 500, в другом каталоге на одном листе 7000, на втором листе примерно такое же количество.

Wild User: UberWolf пишет: вкладке с процессами Ясно. Просто ещё есть вкладка "Быстродействие" там есть "общее выделение памяти" примерно соответствующее описанному размеру (у меня). В общем, хрен его знает пока... Просмотрел ещё раз, вроде все ресурсы освобождаю после использования... И ещё. Запускаю прогу - в диспетчере показывается 5600 кб. загружаю каталог (~30000 поз) - 24280 кб. Сворачиваю прогу в панель задач (больше ничего не делаю) - 1040 кб. Разворачиваю обратно - 2548 кб и так и стоит, если ничего не делать... Есть какие идеи у кого?

ahv: hint: в таком цикле целесообразнее использовать HandleMessage вместо ProcessMessages, тогда не будет 100%-ной загрузки

Wild User: ahv пишет: hint: в таком цикле целесообразнее использовать HandleMessage Спасибо за хинт - обязательно попробую. но не уверен, что поможет... А можно популярно объяснить, в чём разница то? Судя по хэлпу - одна хрень, прерывающая выполнение программы для обработки Windows-сообщений, только для ProcessMessages не вызывается обработчик OnIdle, если очередь сообщений пуста. Или я не прав?

ahv: ProcessMessages, according to everything I've ever read, cycles the message queue once, processing all messages in it, and resumes execution where it left off. Immediately. This lets you perform all pending repaints and depends on win32's preemptive multitasking (hi Mike!) to let all the other processes get on with their life. If you are crunching numbers but don't want to lose screen updates, this is the way to go. HandleMessages processes just one message from the queue, and does something unexpected when there isn't one. It releases the timeslice. This makes HandleMessages appropriate for use in completely different conditions then ProcessMessages. Imagine that you are implementing an FTP client. You are waiting for command responses, and to make the (non-blocking) socket work, you have to process the messages that trigger OnRead when data comes in. But if there is no such message, you have nothing to do and can (and should)... release the timeslice. The docs seem to say that ProcessMessages is the better bet in all cases, and HandleMessages lets the application go idle and this is bad. It's not; if you have nothing to do except busy-waiting, it's what should happen. Waiting for data to come in on a socket, or waiting for the user to push the "I've read it" button are things that require message processing but not continuous execution - not busy waiting. Should you be running NT and have written your FTP client to call ProcessMessages in the loop that waits for the response to the command you just sent, you may notice that CPU usage goes to 100%. This happens because the program sits in a tight loop and processes every message as it becomes available... but in between messages it will be busy executing the loop and calling ProcessMessages on an empty queue. Calling HandleMessages also processes messages as they become available, but when the queue is empty the program is suspended until its next timeslice comes around - all of 25ms or so later. This should keep CPU usage very near 0%. на практике снижения быстродействия, скорее всего, заметно не будет, но процессор не будет загружен на 100%

Wild User: Цитата - это конечно хорошо, но, повторюсь, я не программист, поэтому и просил объяснить. Желательно с каким-нибудь примером. Провёл простейший эксперимент - прокрутил два одинаковых цикла, с замером времени работы каждого. По времени выполнения (при активном приложении) особой разницы не выявлено - она незначительна. Да, действительно, HandleMessage даёт меньшую загрузку процессора, НО - при свёрнутой в панель задач программе. Загрузка процессора при этом - 0%. При этом цикл "замораживается", пока программа находится свёрнутой и продолжает выполняться, при "развороте". В развёрнутом состоянии загрузка "камня" составляет всё те же 100%. И то, это если в цикле обращаться к компоненту, требующему перерисовки (например, в Edit выводить счётчик цикла). Если не выводить, то и цикл даже не выполняется. Или я что-нибудь не так делаю?

Damned: Дайте пожалуйста линк на последнюю версию без багов основного функционала (сравнение).



полная версия страницы