Einzelnen Beitrag anzeigen

Schneider-Huetter

Registriert seit: 5. Mär 2004
97 Beiträge
 
Delphi 7 Personal
 
#1

Problem beim id3-Tag auslesen

  Alt 6. Apr 2004, 12:49
Hallo zusammen, ich habe ein kleines Problem beim Auslesen des id3-Tags.
Es soll nur der Interpret und der Titel ausgelesen, hier mal ein Code-Schnippsel:

Code:

Function Tid3Tag.Interpret_Titel(Datei: String) : String;
 begin
  Try
   FileStream := TFileStream.Create(Datei, fmOpenRead or fmShareDenyWrite);
   FileStream.Seek(-128, soFromEnd);
   FileStream.Read(Puffer, 128);

    if UpperCase(Copy(Puffer, 1, 3) ) = 'TAG' then
     begin
       _Titel:= copy(Puffer,4 ,30);
       _Interpret := copy(Puffer,34 ,30);

       _Interpret_Titel := LeerzeichenEntfernen(_Interpret + ' - ' + _Titel);

       Result := _Interpret_Titel;
     end

      else Result := 'leerer ID3-Tag';
   Except
    Result:='Fehler beim Laden';
   end;
 end;

Das Auslesen des Titels funktioniert zwar immer, das Auslesen des Interpreten aber nur bei manchen mp3-Dateien. Also hab ich mir mal 2 Dateien im Hex-Editor angeschau, eine bei der das Auslesen funktioniert und eine bei der's nicht geht:

Code:

Funktioniert nicht:
------------------------

................TAGMoney
........................
.Pink Floyd.............
.......Dark Side of the
Moon [SACD]..2003Track 6
.......................\

Punkt => Hex 00
Code:

Funktioniert:
------------------------

            TAGI Wanna D
ance With Numbers   Gir
ls On Top              
7" Ep on Black Melody  
2001Kraftwerk vs. Whitney
Houston 4

Leerzeichen => Hex 20
Wie man sieht funktioniert das Auslesen nur bei der Datei mit den Leerzeichen im Tag aber ich versteh einfach nicht warum .
Werden die Punkte (Hex 0) im Puffer automatisch entfernt und ich lese dann mit Position 34 nur Leerzeichen??

Im Voraus schon mal Danke für eure Antworten

MfG Schneider-Huetter
  Mit Zitat antworten Zitat