Seite 1 von 2
Break für if?
Verfasst: 15.02.2011 15:47
von SebastianJu2
Ich finde nicht heraus wie man eine if-Schleife verlassen kann. Break funktioniert ja nicht. Eine Sprungmarke wäre eine Lösung oder auch ständig nachfolgenden Code in ifs einschließen aber sicherlich ist das nicht die beste Lösung oder?
Re: Break für if?
Verfasst: 15.02.2011 15:51
von Kiffi
SebastianJu2 hat geschrieben:Ich finde nicht heraus wie man eine if-Schleife verlassen kann.
http://if-schleife.de/
SebastianJu2 hat geschrieben:... oder auch ständig nachfolgenden Code in ifs einschließen aber sicherlich ist das nicht die beste Lösung oder?
die einzige, die mir bekannt ist.
Bei geschickter Anordnung Deiner Abfragen muss das auch nicht unübersichtlich sein.
Im Zweifelsfall kannst Du Deinen Code auch mal hier posten.
Grüße ... Kiffi
Re: Break für if?
Verfasst: 15.02.2011 15:55
von STARGÅTE
Vermutlich meinst du sowas:
Code: Alles auswählen
; Code
Repeat
; Code
If Not A
Break
EndIf
; Code
If Not B
Break
EndIf
; Code
If Not C
Break
EndIf
; Code
Until #True
; Code
eine "Fake"-Schleife. so kannst du jederzeit die restlichen Ifs umgehen oder ganz einfach normal am ende rausspringen,
ohne die Ifs verschachteln zu müssen
Re: Break für if?
Verfasst: 15.02.2011 15:55
von ts-soft
SebastianJu2 hat geschrieben:auch ständig nachfolgenden Code in ifs einschließen aber sicherlich ist das nicht die beste Lösung oder?
Da kann man sich mit If Not behelfen.
Re: Break für if?
Verfasst: 15.02.2011 15:57
von Kiffi
STARGÅTE hat geschrieben:eine "Fake"-Schleife.
Fuchsig!
Grüße ... Kiffi
Re: Break für if?
Verfasst: 15.02.2011 15:58
von SebastianJu2
if-Abfragen... soso...
Hier mein vorläufiger Code:
Code: Alles auswählen
If EventGadget() = StartButtonHandle
stoprun.l=0
If FileSize(GetGadgetText(SourceStringHandle)) = -1 Msg("Sourcefile doesnt exist",1) : SetGadgetText(SourceStringHandle,"") : stoprun=1 : EndIf
If FileSize(GetGadgetText(SourceStringHandle)) = -2 Msg("Sourcefile cant be a directory",1) : SetGadgetText(SourceStringHandle,"") : stoprun=1 : EndIf
If FileSize(GetGadgetText(TargetStringHandle)) = -2 Msg("Targetfile cant be a directory",1) : SetGadgetText(TargetStringHandle,"") : stoprun=1 : EndIf
If FileSize(GetGadgetText(TargetStringHandle)) = -2 Msg("Targetfile cant be a directory",1) : SetGadgetText(TargetStringHandle,"") : stoprun=1 : EndIf
EndIf
In der umfassenden if-Abfrage soll dann auch wie der Handlename schon sagt die Aktion starten. Vorher muss ich ja testen ob alle Eingabedaten korrekt sind. Und da fände ich gut wenn ich auf diese Variable stoprun verzichten könnte. Ein einfaches break wie für die Schleifen würde das Ganze übersichtlicher machen denke ich.
Aber wenn es das nicht gibt muss das wohl so funktionieren...
@Stargate und ts-soft
Klingt nach Möglichkeiten... muss mal drüber nachdenken...
Re: Break für if?
Verfasst: 15.02.2011 16:05
von SebastianJu2
Ich hab jetzt die repeat-Variante genommen. Die erscheint mir am übersichtlichsten zu sein... danke!
Code: Alles auswählen
If EventGadget() = StartButtonHandle
Repeat
If FileSize(GetGadgetText(SourceStringHandle)) = -1 Msg("Sourcefile doesnt exist",1) : SetGadgetText(SourceStringHandle,"") : Break : EndIf
If FileSize(GetGadgetText(SourceStringHandle)) = -2 Msg("Sourcefile cant be a directory",1) : SetGadgetText(SourceStringHandle,"") : Break : EndIf
If FileSize(GetGadgetText(TargetStringHandle)) = -2 Msg("Targetfile cant be a directory",1) : SetGadgetText(TargetStringHandle,"") : Break : EndIf
Until #True
EndIf
Re: Break für if?
Verfasst: 15.02.2011 16:12
von Kiffi
hier hätte ich noch eine Variante:
Code: Alles auswählen
If EventGadget() = StartButtonHandle
Select #True
Case FileSize(GetGadgetText(SourceStringHandle)) = -1
Msg("Sourcefile doesnt exist",1)
SetGadgetText(SourceStringHandle,"")
Case FileSize(GetGadgetText(SourceStringHandle)) = -2
Msg("Sourcefile cant be a directory",1)
SetGadgetText(SourceStringHandle,"")
Case FileSize(GetGadgetText(TargetStringHandle)) = -2
Msg("Targetfile cant be a directory",1)
SetGadgetText(TargetStringHandle,"")
EndSelect
EndIf
Grüße ... Kiffi
Re: Break für if?
Verfasst: 15.02.2011 16:15
von ts-soft
Wenn Du einen OpenFileRequester, bzw. einen SaveFileRequester nimmst, kann das garnicht vorkommen.
Ist also vollkommen unnötig. Lediglich ein Leerstring bei abbrechen wäre möglich, der ist aber kein
Fehler, sondern eher das gewünschte des Benutzers, also kannst Du Dir alle diese nervigen Meldungen
sparen.
Re: Break für if?
Verfasst: 15.02.2011 16:23
von SebastianJu2
@Kifi
An ein Select hatte ich auch schon gedacht nur spart man damit nicht wirklich etwas weil die abzufragenden Werte immer ins case geschrieben werden müssen. Und ein break würde nichts nützen da ich ja ansonsten die restlichen Aktionen in die Selectschleife schreiben müsste.
@ts-soft
Ich nutze zwar einen OpenFileRequeste aber ich speichere die URLs dann in einem Stringgadget. Und dieses lasse ich offen für Editierungen weil ich denke das sollte man ermöglichen. Und der User könnte dann natürlich auch reichlich Müll reinschreiben.
Sind ja eigentlich nur 4 Abfragen. Source muss existieren und kein Verzeichnis sein und Target darf nicht -2, also Verzeichnis sein und wenn es >=0 ist dann gibt es die Datei schon und es sollte nachgefragt werden ob sie überschrieben werden soll.