Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

For Next Schleife und End if in VB

Dino30002 / 15 Antworten / Flachansicht Nickles

Hi,


ich habe ein Problem mit einer For Next-Schleife. Hier ist der Code:


For zaehler = 2 To TextBoxLineCount(Text1)
zeile = zeile + 1
If StrCount(TextBoxLine(Text1, zeile), "Begiena:") = 1 Then
Next zaehler
End if
[weiterer Code]
Next zaehler


Bei der Ausführung wird der Fehler "Next ohne For" ausgelöst und es wird eine Markierung auf das erste Next gesetzt. In der VB Hilfe steht, dass dieser Fehler unter anderem durch eine falsche If-End if Struktur innerhalb der Schleife ausgelöst werden kann. Das scheint bei meinem Code auch der Fall zu sein, aber ich habe ja gar keine Möglichkeit gleichzeitig die If-Schleife zu beenden und die Schleife neu aufzurufen, oder? Denn wenn ich das End if vor das Next setzen würde, wäre das If-End if unsinnig.


MfG,
Dino

bei Antwort benachrichtigen
Neues Problem Dino30002
Neues Problem Borlander
mr.escape Dino30002 „So ganz hab ich das Xor noch nicht durchschaut, aber ich glaube das funktioniert...“
Optionen

Leider ist in VB ein sauberes weitermachen in der schleife nicht so möglich wie in C/C++ (mit continue;) auch wenn das saubere beenden mit "Exit For" geht (vgl. break; in C/C++).

Als nicht ganz sauberen workaround könnte man direkt vor den "Next var" ein "continue:" label setzen und immer mit "Goto continue" einen neuen schleifendurchlauf anstoßen (die labelnamen müssten aber zumindest innerhalb eines Sub eindeutig sein).

Übrigens: das "Goto ende" (und das ende: label) lassen sich durch "Exit Sub" ersetzen.

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen