AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ID3-Tag oder besser Dateiname anzeigen lassen ?
Thema durchsuchen
Ansicht
Themen-Optionen

ID3-Tag oder besser Dateiname anzeigen lassen ?

Ein Thema von newuser01 · begonnen am 28. Sep 2006 · letzter Beitrag vom 30. Sep 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
851 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: ID3-Tag oder besser Dateiname anzeigen lassen ?

  Alt 29. Sep 2006, 09:11
Das einzige, was mir da auffällt ist, dass du die temporären Stringlisten immer weiter befüllst, anstatt sie vor jedem Durchlauf zu löschen. Somit bleibt der nullte und dritte String in diesen Listen immer gleich, also werden immer die Dateinamen eingetragen, wenn die erste Datei keinen Tag hatte.
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 30. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#12

Re: ID3-Tag oder besser Dateiname anzeigen lassen ?

  Alt 29. Sep 2006, 14:16
Hallo Gausi auch wenn ich am Ende immer die Listen lösche passiert leider das selbe

Delphi-Quellcode:
procedure TfMain.btnSearchClick(Sender: TObject);
var
  i: Integer;
  sDateiname,sArtist,sTitle:String;

slMP3.Clear; // vor dem füllen löschen
//hier wird slMP3 mit allen mp3 Dateien gefüllt die auf der Festplatte gefunden wurden

//ab hier werden diese Dateien dann nach ID3Tag überprüft um sie dann Ordnungsgemäß anzuzeigen
for I := 0 to slMP3.Count - 1 do
begin


  //ID3v1Tag auslesen
  if ID3v1Tag.ReadFromFile(slMP3.Strings[i]) then
  begin
    with ID3v1Tag do
    begin
      slTmp1.Add(Artist);
      slTmp1.Add(Album);
      slTmp1.Add(Year);
      slTmp1.Add(Title);
    end;
  end;//if

  //ID3v2Tag auslesen
  if ID3v2Tag.ReadFromFile(slMP3.Strings[i]) then
  begin
    with ID3v2Tag do
    begin
      slTmp2.Add(Artist);
      slTmp2.Add(Album);
      slTmp2.Add(Year);
      slTmp2.Add(Title);
    end;
  end;//if


//ab hier soll geprüft werden ob in slTmp1 oder slTmp2 was drin steht
//und wenn in einer StringList (aber nur eine) was enthalten ist soll
//dieser Eintrag in lbMP3Ausgabe eingetragen werden

//mein versuch erst slTmp überprüfen ob in String 0 und String 3 was enthalten ist
if (slTmp1.Strings[0] <> '') and (slTmp1.Strings[3] <> '') then
begin
  sArtist := slTmp1.Strings[0];
  sTitle := slTmp1.Strings[3];
  lbMP3Ausgabe.Items.Add(sArtist +' - '+ sTitle);
end
  else
     begin
     //wenn nichts vorhanden ist weiter und slTmp2 überprüfen
     if (slTmp2.Strings[0] <> '') and (slTmp2.Strings[3] <> '') then
     begin
       sArtist := slTmp2.Strings[0];
       sTitle := slTmp2.Strings[3];
       lbMP3Ausgabe.Items.Add(sArtist +' - '+ sTitle);
     end
       else
          begin
            // wenn in slTmmp2 auch nichts enthalten ist dann nur Dateinamen eintragen
            sDateiname := ExtractFileName(slMP3.Strings[i]);
            lbMP3Ausgabe.Items.Add(ChangeFileExt(sDateiname,''));

     end;//if slTmp2

end;//if slTmp1

slTmp1.Clear;
slTmp2.Clear;

end;//for

//Speicher freigeben außer slMP3 die wird noch Temporär gebraucht
slTmp1.Clear;
slTmp2.Clear;
slTmp1.Free;
slTmp2.Free;

end;//procedure
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 30. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#13

Re: ID3-Tag oder besser Dateiname anzeigen lassen ?

  Alt 29. Sep 2006, 14:25
Nachtrag: Wenn in slMP3 zb: 10 Dateien wie hier zu sehen ist sind und zb: nur die "Datei001.mp3" einen ID3Tag besitzt

Datei001.mp3
Datei002.mp3
Datei003.mp3
Datei004.mp3
Datei005.mp3
Datei006.mp3
Datei007.mp3
Datei008.mp3
Datei009.mp3
Datei010.mp3

dann müsste eigentlich in "lbMP3Ausgabe" nur folgendes drin stehn

ID3Tag der Datei
Datei002.mp3
Datei003.mp3
Datei004.mp3
Datei005.mp3
Datei006.mp3
Datei007.mp3
Datei008.mp3
Datei009.mp3
Datei010.mp3

und genau so steht es nicht drin sondern so wie hier
als erstes listet er alle Dateien und wenn er fertig ist trägt er es noch mal richtig ein

Datei001.mp3
Datei002.mp3
Datei003.mp3
Datei004.mp3
Datei005.mp3
Datei006.mp3
Datei007.mp3
Datei008.mp3
Datei009.mp3
Datei010.mp3
ID3Tag der Datei //ab hier ist es richtig
Datei002.mp3
Datei003.mp3
Datei004.mp3
Datei005.mp3
Datei006.mp3
Datei007.mp3
Datei008.mp3
Datei009.mp3
Datei010.mp3


vielleicht ist es jetzt besser zu verstehen was ich meine deswegen der Nachtrag
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 30. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#14

Re: ID3-Tag oder besser Dateiname anzeigen lassen ?

  Alt 29. Sep 2006, 19:55
Hat denn keiner eine Idee woran es liegen könnte ? Ich wäre auch für ein völlig neues Ansatz offen zählen tut nur das Ergebnis
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 30. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#15

Re: ID3-Tag oder besser Dateiname anzeigen lassen ?

  Alt 30. Sep 2006, 22:40
Ich könnte mich Ohrfeigen mein Code funktioniert einwandfrei der Fehler lag bei mir selber. Ich habe ja die ganze Zeit mit einem bestimmten Ordner getestet wo 10 mp3s drin waren und eine Datei davon war mit einem ID3Tag versehen wie oben beschrieben. Nun hab ich mich ja gewundert warum die Dateien immer doppelt in lbMP3Ausgabe eingetragen wurden ganz einfach die Dateien waren auf meiner Festplatte doppelt vorhanden also konnten diese ja auch nur doppelt angezeigt werden ICH HORNOCHSE und damit befasst man sich nun STUNDEN
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz