Noch etwas Öl oder Code für's Feuer.
Also ich habe bei dieser Funktion noch keinen Weg gefunden, es ohne Goto elegant zu formulieren.
Delphi-Quellcode:
// Prüft, ob eine Datei für den Import vorhanden ist.
// Falls nicht, kann der Benutzer entscheiden, was passieren soll
function CheckImportFile(
const fname: TFilename;
const Caption:
string): Boolean;
var
msg:
string;
label again;
begin
again:
if not FileExists(fname)
then
msg := Format('
Datei <%s> ist nicht vorhanden', [fname])
else if FileGetSize(fname) = 0
then
msg := Format('
Datei <%s> ist leer', [fname])
else
msg := '
';
if msg <> '
'
then
begin
case MessageBox(0, PChar(msg), PChar(Caption), MB_ICONWARNING
or MB_ABORTRETRYIGNORE
or MB_SETFOREGROUND)
of
idAbort: Abort;
// stille Exception
idRetry:
goto again;
idIgnore:
begin
Result := False;
// Datei vorhanden oder leer; der Benutzer möchte die Datei ignorieren
Exit;
end;
end;
end;
Result := True;
// Datei vorhanden und nicht leer
end;