AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen

Ein Thema von Alex_ITA01 · begonnen am 27. Sep 2005 · letzter Beitrag vom 21. Nov 2010
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.539 Beiträge
 
Delphi 12 Athens
 
#11

AW: ID3v1-Tag, ID3v2-Tag und MPEG-Header einer MP3 auslesen

  Alt 20. Nov 2010, 20:39
Bedenke bitte, daß dein D3 nicht grade das Jüngste ist und es demnach mit vielen "neueren" Compilerfeatures nicht zurecht kommt.

So, aber da ich (und auch viele Andere) selber kein D3 installiert hab, kann ich ohne detailiertere Fehlermeldung nichts ausrichten.

Also Fehlermeldungen und die zugehörigen Fehlerzeilen/-stellen.


Aber wenn ich dann sowas wie das seh (aus Post #1)
Delphi-Quellcode:
function ReadTag(const FileName: string; var TagData: TagRecord): Boolean;
var
  SourceFile : File;
begin
  try
    Result := true;
    AssignFile(SourceFile, FileName);
    FileMode := 0;
    Reset(SourceFile, 1);
    Seek(SourceFile, FileSize(SourceFile) - 128);
    BlockRead(SourceFile, TagData, 128);
    CloseFile(SourceFile);
  except
    Result := false;
  end;
end;
Dann rate ich von einer Verwendung dieses Codes eher ab.

Wenn, dann eigentlich so
Delphi-Quellcode:
function ReadTag(const FileName: string; var TagData: TagRecord): Boolean;
var
  SourceFile : File;
begin
  AssignFile(SourceFile, FileName);
  FileMode := 0;
  Reset(SourceFile, 1);
  try
    try
      Seek(SourceFile, FileSize(SourceFile) - 128);
      BlockRead(SourceFile, TagData, 128);
      Result := true;
    except
      Result := false;
    end;
  finally
    CloseFile(SourceFile);
  end;
end;
eventuell auch so
Delphi-Quellcode:
function ReadTag(const FileName: string; var TagData: TagRecord): Boolean;
var
  SourceFile : File;
begin
  AssignFile(SourceFile, FileName);
  FileMode := 0;
  Reset(SourceFile, 1);
  try
    Seek(SourceFile, FileSize(SourceFile) - 128);
    BlockRead(SourceFile, TagData, 128);
    Result := true;
  except
    Result := false;
  end;
  CloseFile(SourceFile);
end;
oder ganz ohne Exceptions:
Delphi-Quellcode:
function ReadTag(const FileName: string; var TagData: TagRecord): Boolean;
var
  SourceFile : File;
begin
  AssignFile(SourceFile, FileName);
  FileMode := 0;
  {$I-}
  Reset(SourceFile, 1);
  Seek(SourceFile, FileSize(SourceFile) - 128);
  BlockRead(SourceFile, TagData, 128);
  CloseFile(SourceFile);
  Result := IOResult = 0;
  {$I+}
end;


Vom Codeaufbau her würde ich eher die in Beitrag #6 und #27 verlinkten Codes empfehlen, aber diese laufen teilweise nichtmal in D7/D2006 und demnach erst Recht nicht in einem D3.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (20. Nov 2010 um 20:45 Uhr)
  Mit Zitat antworten Zitat
 


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 11:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz