edit 1: Ups, mehrfach verlesen
edit 27:
Es kommen wohl zweierlei Dinge zusammen:
Mit Exit verlaesst Du die aktuelle Routine. Das wuerde aber sowieso passieren, da exit der letzte Befehl dieser Routine ist.
Ausserdem wird der Befehl unabhaengig davon ausgefuehrt, was die if-Abfrage liefert, da es nicht in einem Block zusammengefasst ist.
Eine Loesungsmoeglichkeit waere auch folgende (fuer Konsolenanwendung):
Delphi-Quellcode:
//...
function SearchingFiles(Filename:String) : boolean; // function statt procedure
begin
result := SearchForFile(GetSysDir+'\', Filename, APathFound);
if result then
WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else
WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
end;
begin
//Programmstart
//...
IF NOT SearchForFile THEN Exit; // in diesem Fall wird die "aeusserste" Routine , naemlich das Programm selbst, abgebrochen
// weiterer Programmcode
end.
Andere Möglichkeit:
Delphi-Quellcode:
//...
procedure SearchingFiles(Filename:String);
begin
result := SearchForFile(GetSysDir+'\', Filename, APathFound);
if result then
WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else
begin //else-Teil zusammenfassen
WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
Halt; // Programm beenden
end;
end;
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...