AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exit ?!

Ein Thema von -187- · begonnen am 2. Mär 2007 · letzter Beitrag vom 3. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#1

Exit ?!

  Alt 2. Mär 2007, 10:18
Delphi-Quellcode:
  Procedure SearchingFiles(Filename:String);
begin
  if SearchForFile(GetSysDir+'\', Filename, APathFound) then
    WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else
    WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
    end;
Ich möchte das dass Programm schließt wenn die Datei nich vorhanden ist. Also sowas wie

Delphi-Quellcode:
else
    WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename) AND EXIT;
Wie mach ich das , ich möchte nich nochmal extra eine if File Exists durchführen..
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#2

Re: Exit ?!

  Alt 2. Mär 2007, 10:23
Hi,

Du fasst die Befehle einfach in einen Block zusammen:
Delphi-Quellcode:
if xyz then abc else
begin
  aktion1;
  aktion2;
end;

Gruß
Stephan
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...
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Exit ?!

  Alt 2. Mär 2007, 10:24
Vielleicht hilft raise Exception?
Oder habe ich die Frage falsch verstanden?
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#4

Re: Exit ?!

  Alt 2. Mär 2007, 10:25
Evtl.
application.Terminate; Bin mir aber nicht sicher ob das ohne VCL funktioniert.
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#5

Re: Exit ?!

  Alt 2. Mär 2007, 10:26
Naja das hab ich schon probiert.. Mein Programm schreibt auch die Zeile
WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename); Aber der Exit funktioniert nicht


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;
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Exit ?!

  Alt 2. Mär 2007, 10:28
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Exit ?!

  Alt 2. Mär 2007, 10:30
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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#8

Re: Exit ?!

  Alt 2. Mär 2007, 10:31
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...
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#9

Re: Exit ?!

  Alt 2. Mär 2007, 10:36
Ja es handelt sich um eine Konsolen Anwendung.
Application.Close() <- Undefinierter Bezeichner Application

Ich dachte immer das geht mit Exit
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#10

Re: Exit ?!

  Alt 3. Mär 2007, 06:55
*push* Keiner eine Idee?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz