Thema: Delphi ID3v1 und ID3v2 auslesen

Einzelnen Beitrag anzeigen

DelphiFreund

Registriert seit: 29. Jul 2004
Ort: München
127 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: ID3v1 und ID3v2 auslesen

  Alt 12. Dez 2004, 20:36
Hi Leute,
als ich gerade diesen Thread laß ist mir etwas aufgefallen.
@Chakotay1308: Diese Version:
Delphi-Quellcode:
type
  TID3Tag = record
   // diese Struktur erweitert die Char arrays um ein Zeichen für Nullterminator,
   // somit muß sie Feld für Feld gelesen und geschrieben werden, da ID3 eben diese Terminatoren NICHT speichert.
    ID: array[0..3] of Char;
    Title: array[0..30] of Char;
    Artist: array[0..30] of Char;
    Album: array[0..30] of Char;
    Year: array[0..4] of Char;
    Comment: array[0..30] of Char;
    Genre: Byte;
  end;

function ReadID3Tag(const FileName: String): TID3Tag;
begin
  FillChar(Result, SizeOf(Result), 0);
  with TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone) do
  try
    Position := Size - 128;
    Read(Result.ID, 3);
    Read(Result.Title, 30);
    Read(Result.Artist, 30);
    Read(Result.Album, 30);
    Read(Result.Year, 4);
    Read(Result.Comment, 30);
    Read(Result.Genre, 1);
  finally
    Free;
  end;
end;

funktionioniert nur bei ID3v1 Tags, es gibt aber schon seit langem die oft verwendete ID3v1.1. Du solltest auf jeden Fall die Funktion ausbauen, die Struktur ist folgende:
ID ('TAG')
Title 30
Artist 30
Album 30
Year 4
Comment 28
0-Byte ($0) 1
Album Track (Titelnummer) 1
Genre 1

die Zahlen sind natürlich in Byte.


Gruß DelphiFreund
Sandro
Irren ist menschlich...
  Mit Zitat antworten Zitat