Zitat von
Luckie:
Die Kommentare sind alle Überflüssig.
Ich schreibe immer Kommentare in meinen Code, in diesem Beispiel sind die Kommentare sehr gekürzt.
Vor allem für Leute, die meinen Code später mal lesen wollen, erhöht das die Lesbarkeit.
Solange die Kommentare keine Zeitliche verzögerung bedeuten oder das compilierte Programm vergrößern, können die drinbleiben (das ist ja eh ansichtssache des einzelnen Entwicklers).
Zitat von
Luckie:
Die Methode getID3v1Information würde ich private machen, das "g" groß schreiben und eine entsprechende read-Property einführen. Später kannst du dann die read-Property noch um eine write-Property erweitern, wenn man dann auch Informationen schreiben kann mit deiner Klasse.
Schreiben würde ich dann als 'setID3v1Information' schreiben, als Übergabe dann wieder Dateiname und MP3Info Record.
Zitat von
Luckie:
Als Rückgabetyp würde ich Boolean nehmen, wenn du keine weiteren eigenen Fehlercodes definierts.
Doch, da kommen noch Fehlercodes rein, z.B. wenn das Tag 'TAG' fehlt usw.
Zitat von
Luckie:
Warum die gloable Variabel clsMP3ID3vX?
Zum Zugriff auf die Klasse von anderen Klassen (Forms, usw.) aus.
Zitat von
Luckie:
Wie wäre es mit einem Konstruktor, dem du den Dateinamen übergibst?
Hatte ich auch mal gedacht, diese Methode ist aber schneller.
Zitat von
Luckie:
Ich würde die Daten nicht in einem Record zurückgeben, sondern über Properties.
Könnte man auch, ich finde aber, dass ist Ansichtssache des einzelnen. Evtl. stelle ich beides zur Verfügung.
Zitat von
Luckie:
Und das:
Delphi-Quellcode:
for i:=4 to 33 do
ID3v1Infos.Songtitel := ID3v1Infos.Songtitel+buffer[i];
Sieht auch komisch aus. Wenn der Titel kürzer ist, aber das String-Ende Zeichen fehlt, schreibst du Mist in das Feld. Zumindest ein
Trim sollte noch folgen. Und könnte man da nicht
SetString nehmen oder so?
Jo, die for-Schleife ist nur ein Schnellschuß (die
unit entstand in 20 min.). Bin an der Stelle für Vorschläge offen.
Laut Spec ist das Feld _genau_ 30 Zeichen groß!
Zitat von
Luckie:
Das wäre meine Lösung. Muss nicht die Meinung aller treffen, aber so sieht es für mich sauber und schlüssig aus.
Ich danke in jedem Fall für deine Anregungen und schaue sie mir nochmal genau an. Wie gesagt ist das natürlich immer aus der Sicht des einzelnen Entwicklers; der eine findet es so besser, der andere eben anders.
Aber mich freut es schon mal, dass du keine Fehler 'an-sich' gefunden hast.