Ohne das Seek (in der Schleife) wäre es nicht hängen geblieben.
Zu dem Try-Except:
- grundsätzlich sollte der Code dazwischen keine Exceptions auslösen
(das alles sind wohl Fehler, bei denen das Programm sowieso abraucht und man sich die Fehlerbehandlung hier sparen könnte), außer
- - die Datei ist garnicht offen, aber dann hätte es wohl schon beim Öffnen geknallt
- - der Datenträger ist kaputt (defekter Sektor), aber sowas sollte besser eh nie passieren
- - oder die Datei ist viel zu groß und es komm ein OutOfMemory
- aber wenn eine
Exception auftritt, dann ist es nicht unbedingt gut, wenn man die
Exception verwirft und durch nichtsagenden Code ersetzt.
Delphi-Quellcode:
except
on E:
Exception do
ShowMessage('
Problem beim Laden der Datei "' + Dateiname + '
".' + sLineBreak + E.
Message);
end;
Und bei einer
Exception ist Rückgabewert nicht definiert/initialisiert.
Wobei man die Variable DatenArray weglassen und direkt Result nutzen könnte, aber dennoch sollte man das Result entweder vor dem Try oder im Except auf einen definierten Wert setzen. (wenn du direkt Result verwendest, dann einfach am Anfang ein
Result=nil;
)
Da hier das Result additiv/aufbauend verwaltet wird, muß es sowieso immer initialisiert werden, auch wenn keine
Exception auftritt.
Delphi-Quellcode:
function Text: string;
begin
Result := Result + 'a';
end;
var
i: Integer;
S: string;
begin
for i := 1 to 5 do
S := S + Test;
ShowMessage(S);
end;
Was gibt hier die MessageBox aus und was würdest eigentlich du für einen Text erwarten?
sLinbBreak: Eine Beschreibung, falls Lazaus sowas nicht kennt.