![]() |
Exit ?!
Delphi-Quellcode:
Ich möchte das dass Programm schließt wenn die Datei nich vorhanden ist. Also sowas wie
Procedure SearchingFiles(Filename:String);
begin if SearchForFile(GetSysDir+'\', Filename, APathFound) then WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename); end;
Delphi-Quellcode:
Wie mach ich das , ich möchte nich nochmal extra eine if File Exists durchführen..
else
WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename) AND EXIT; |
Re: Exit ?!
Hi,
Du fasst die Befehle einfach in einen Block zusammen:
Delphi-Quellcode:
if xyz then abc else
begin aktion1; aktion2; end; Gruß Stephan |
Re: Exit ?!
Vielleicht hilft raise Exception?
Oder habe ich die Frage falsch verstanden? |
Re: Exit ?!
Evtl.
Delphi-Quellcode:
Bin mir aber nicht sicher ob das ohne VCL funktioniert.
application.Terminate;
|
Re: Exit ?!
Naja das hab ich schon probiert.. Mein Programm schreibt auch die Zeile
Delphi-Quellcode:
Aber der Exit funktioniert nicht :shock: :shock:
WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
Delphi-Quellcode:
Procedure SearchingFiles(Filename:String);
begin if SearchForFile(GetSysDir+'\', Filename, APathFound) then WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename); Exit; end; |
Re: Exit ?!
Exit beendet nicht das Programm. Im Mainform kannst du einfach Close() machen, oder du beendest die Anwendung auf die "harte" Tour mit Application.Close(). Allerdings solltest du vorher noch einen Hinweis anzeigen, warum sich das Programm beendet ;)
Greetz alcaeus |
Re: Exit ?!
halt
Edit: Das lltest du aber eigentlich vermeiden solche Befehle der Ablaufsteuerung. Manchmal kommt man zwar ohne nicht mehr aus. Aber bei größeren Programmen siehst du einfach nicht mehr durch, wenn du zuviele exits und halts und etc. drin hast. |
Re: Exit ?!
edit 1: Ups, mehrfach verlesen :oops:
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:
Andere Möglichkeit:
//...
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.
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; |
Re: Exit ?!
Ja es handelt sich um eine Konsolen Anwendung.
Application.Close() <- Undefinierter Bezeichner Application Ich dachte immer das geht mit Exit :roteyes: |
Re: Exit ?!
*push* Keiner eine Idee?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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