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.