MP3-Double-Finder

    • Offizieller Beitrag

    Version 1.6 ( 14.03.10 )
    Dieses Programm findet doppelte MP3-Dateien anhand des Dateinamen und der ID3-Tags (optional) und zeigt diese in einem ListView an.
    Man kann sich die doppelten MP3s anhören und/oder löschen (bzw. in den Papierkorb verschieben). Diese Funktionen stehen im Kontextmenü (rechte Maustaste auf ein Item) zur Verfügung.
    Seit der Version 1.1 stehen mehr Informationen (ID3-Tags) zu jeder doppelten Datei zur Verfügung, sodass man besser beurteilen kann, ob die Dateien wirklich gleich sind.
    In der Version 1.2 werden jetzt die verschiedenen Windows-Versionen berücksichtigt, sodass das Script unter Windows2000/XP/Vista und Windows7 funktionieren sollte. Den Abbruch-Button von Version 1.1 habe ich wieder entfernt (Abfrage war schlecht programmiert ;) ). Man kann jetzt das einlesen des Verzeichnisses und die eigentliche Suche mit der [ESC]-Taste abbrechen.
    Mit der Version 1.3 gibt es jetzt eine Ähnlichkeitssuche. Man kann einstellen (in Prozent) wie ähnlich zwei Dateinamen min. sein müssen, damit sie in der Liste angezeigt werden. Je nach Anzahl der MP3s und der Rechnergeschwindigkeit kann das sehr lange dauern. Aber dass das überhaupt erst möglich wurde, haben wir bernd670 zu verdanken, der eine Funktion dafür in C++ programmiert hat (ist ca. 1000 mal so schnell). Danke nochmal dafür, Bernd!
    Außerdem wird jetzt das ausgewählte Suchverzeichnis in einer Inidatei abgespeichert, sodass es beim nächsten Programmstart gleich oben eingetragen ist.
    In der Version 1.4 habe ich noch ein wenig den Sourcecode aufgeräumt (sollte noch ein bißchen schneller geworden sein). Außerdem kann man jetzt eine Logdatei erstellen lassen. Und am Ende des Suchlaufs ertönt jetzt ein "Fertig"-Sound.

    Vorsicht! Beim Löschen bzw. in den Papierkorb verschieben, gibt es keine zusätzliche Abfrage!


    Edit, Version 1.6
    - Die ID3-Tags werden jetzt von meiner Funktion direkt aus dem Header der Datei gelesen (funktioniert unabhängig vom Betriebssystem)
    - Die Fenstergröße etwas verkleinert (Tribut an die Netbooks mit ihren 1024x600 Pixel Bildschirmen).
    - Erklärende Tooltips zu den Checkboxen hinzugefügt
    - Einige Anpassungen an die neue AutoIt-Version

    Screenshot:
    autoit.de/wcf/attachment/6033/

    Das Script sowie die compilierte Exe, die DLL und das Programm-Icon befinden sich im ZIP-Archiv (Anhang).

  • Ohje 1/3 ist bei mir doppelt im System :rolleyes:

    Besonders interessiet hat mich die Funktion _RecursiveFileListToArray.
    Davon gibt es ja zahlreiche Varianten, ist das die deiner Meinung nach schnellste?
    Was wäre eine geeignete Methode um verschiedene Funktionen gegeneinander antreten zu lassen?

    • Offizieller Beitrag

    Naja, die Dateien müssen ja nicht zwangsläufig doppelt sein. Es kann sich ja auch um verschiedene Versionen (Live, Maxi, etc.) des gleichen Liedes handeln.
    Aber mit dem Programm kann man sie ausfindig machen und das finde ich ganz praktisch. :)

    Meine Funktion _RecursiveFileListToArray, die ich hier verwende ist zwar sehr schnell, aber nicht die Schnellste. Es gab hier vor ein paar Tagen eine Version (irgendwas mit EX), die noch etwas schneller war.
    Beim Testen musst Du allerdings darauf achten, dass der erste Aufruf länger dauert, als die nachfolgenden (auch mit anderen Funktionen). Das liegt an dem Festplatten-Cache. Ein einmal eingelesenes Verzeichnis befindet sich eine zeitlang im Cache und wird anschließend aus diesem ausgelesen.
    Meine Funktion ist aber (glaube ich) die Kürzeste. :)

  • Hallo.

    Bei doppelte Datei & doppelter ID3-Tags würde ich eine weitere Anzeigefarbe wählen, da dann zwei Sachen gleich sind und somit die Datei wohl wirklich doppelt ist. Die Wahrscheinlichkeit ist dann sehr hoch, das es eine 1:1 Datei ist.

    Bug:
    Bei Bitrate wird die Laufzeit angezeigt und nicht unter Laufzeit, wie geplan.
    Siehe Bild: autoit.de/wcf/attachment/5937/

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Nach dem ich "Suche starten..." gedrückt habe und er nicht gefunden hat, ist immer noch der Button ausgegraut!

    Nett wäre noch ein "Abbruch" Button.

    Cool wäre es, wenn man den Musikinhalt Binär vergleichen könnte, d.h. MP3 Part extrahieren und dann ein Binärvergleich (MD5?). Denn es könnte ja z.B. sein, dass die Mp3 Datei gleich ist, aber der Name/Tag anders -> ü->ue, ä->ae, ö->oe.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (2. September 2009 um 19:38)

    • Offizieller Beitrag

    Alina: Eigentlich dürfte es nicht vorkommen, dass beide Bedingungen (gleiche Datei und gleiche ID3-Tags) zutreffen, denn wenn die Datei gleich ist, überspringe ich die ID3-Prüfung. Die ID3-Tags werden ja auch bei Dateigleichheit angezeigt und so kann man anhand der Daten ja schon ganz gut beurteilen, ob sie wirklich gleich sind.
    Was die fehlerhafte ID3-Tag-Darstellung bei Dir angeht, gehe ich mal davon aus, dass Du nicht WindowsXP benutzt hast. Ich habe die Abfrage in der neuen Version mal den unterschiedlichen Windows-Versionen angepasst und hoffe, dass das so jetzt richtig ist.

    UEZ: Ein Abbruch-Button gab es in der Version 1.1, aber die Abfrage war Mist. :D Jetzt habe ich die [ESC]-Taste dafür vorgesehen (wollte nicht alles umschreiben).
    Ein Binärvergleich anhand der MD5-Checksummen würde (vermutlich) ewig dauern, bei einigen tausend MP3s. Ich glaube nicht, dass das sinnvoll ist. Obwohl es schon cool wäre...


    Achja: Neue Version in Post #1

  • Hallo Oscar.

    Also ich habe Win-XP-Prof. und der Fehler ist immer noch so wie ich noch einmal mit gerade erstellten Bild (Anlage) belegt.
    autoit.de/wcf/attachment/5950/

    Hier mal wie ich es fix mal gefixt habe und es danach richtig aus schaut:
    autoit.de/wcf/attachment/5951/
    autoit.de/wcf/attachment/5952/

    Kann aber nicht sagen ob es auch die richtigen Zahlen für 'WIN_2003' ist. Also mit den Werten stimmt es auf meinem PC und auf meinem LapTop.

    Evtl. können wir so dem Problem näher kommen? ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Wow!
    Mit der Version ist es echt genial, ich habe gerade einige doppellte MP3s gefunden, von denen ich nichts wusste :). Die Ähnlichkeitssuche ist echt gut eingesetzt. Was vielleicht noch ganz cool wäre, wäre ein besserer MP3-Player, dann kann man die Lieder direkt vergleichen. Und du könntest vielleicht noch ein paar weitere Codeteile in C++ auslagern, weil es ja schon noch extrem lange dauert zum teil. Ich hätte echt nicht gedacht dass das so einfach ist eigene DLLs zu benutzen.