1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| unit Id3;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Dialogs, StdCtrls, ExtCtrls, FileCtrl;
type TTag = record ID: String[3]; Titel: String; Artist: String; Album: String; Year: String; Comment: String; Genre: Byte; end;
type TId3 = class(TObject) function GetId3(Filename: String): TTag; end;
implementation
function TId3.GetId3(Filename: String): TTag; var FS: TFileStream; Buffer: Array [1..128] of Char; begin FS := TFileStream.Create(Filename,fmOpenRead or fmShareDenyWrite); try FS.Seek(-128,soFromEnd); FS.Read(Buffer, 128); with Result do begin ID := Copy(Buffer, 1, 3); Titel:= Copy(Buffer, 4, 30); Artist := Copy(Buffer, 34, 30); Album := Copy(Buffer, 64, 30); Year := Copy(Buffer, 94, 4); Comment := Copy(Buffer, 98, 30); Genre := Ord(Buffer[128]); end; finally FS.Free; end; end;
end. |