Hallo!
Ich habe einen VBScript Fehler, den ich nicht verstehe.
Hier erstmal der Programmcode:
zahl = 0
rofl:
lol = msgbox(„Du hast schon " & zahl & " mal gedrückt.“, 5, „gedrückt“)
If lol = VbRetry then
zahl = zahl +1
Goto rofl
else
x = msgbox(„Du hast " & zahl & " mal gedrückt.“, 0 , „gedrückt“)
end if
Es kommt immer Fehler in Zeile 6, Zeichen 1. Heißt also, ein Fehler bei goto! Kann mir da eventuell jemand helfen? Wäre nett. Vielen Dank im Vorraus!
es gibt keine goto in vbscript. Du musst das mit Schleifen lösen. Z.B. sowas in der Art hier:
zahl = -1
Do
zahl = zahl +1
lol = MsgBox(„Du hast schon " & zahl & " mal gedrückt.“, 5, „gedrückt“)
Loop While lol = vbRetry
MsgBox „Du hast " & zahl & " mal gedrückt.“, 0 , „gedrückt“
zahl = 0
Do
lol = msgbox("Du hast schon " & zahl & " mal gedrückt.", 5, "gedrückt")
If lol = VbRetry then
zahl = zahl +1
Else
Exit Do
End If
Loop
x = msgbox("Du hast " & zahl & " mal gedrückt.", 0 , "gedrückt")
Erklärung: goto wird in vbscript nicht unterstützt, das gibts in Batchdateien (bat, cmd), suche nach vbscript schleifen, dann wirst du weitere Möglichkeiten finden.
Keine Ahnung worin der Fehler leigt. Kenne mich mit Goto-Anweisungen nicht sonderlich gut aus. Für dein Problem wäre auch eher eine Schleife sinnvoll. In Etwas so:
zahl = 0
Do
lol = msgbox(„Du hast schon " & zahl & " mal gedrückt.“, 5, „gedrückt“)
zahl = zahl +1
Loop While lol = vbRetry
zahl = zahl -1 'Hier wieder um eines zurücksetzen!
x = msgbox(„Du hast " & zahl & " mal gedrückt.“, 0 , „gedrückt“)
VBScript kennt (im Unterschied zu seinem großen Bruder Visual Basic) kein Goto Kommando. Die einzige Ausnahme ist „on error goto“, das wohl der Gewohnheit halber implementiert wurde. Aber auch dieses unterstützt keinen Sprunhmarken, sondern nur zwei Sonderfälle:
on error resume next (ignoriere Fehler)
on error goto 0 (behandle Fehler)
Es ist aber kein Problem, Deine Aufgabenstellung ohne Goto mit einer do oder while Schleife zu lösen. Das ist, nebenbei gesagt, stilistisch deutlich besser. Gotos macht man ungerne, weil sie wild kreuz und quer im Code herumspringen, und man bei komplexen Strukturen leicht die Übersicht verliert. Es gibt nur wenige Anwendungen, die solche Sprünge rechtfertigen, in erster Linie sind es Fehlerbehandlungsmechanismen. Dafür hat VBScript eigene Befehle (Exit Function, Exit …). Also ist Goto entbehrlich, dachte man sich wohl.
Hallo und guten Tag,
soweit ich weiss, gibt es kein Goto in VBS. Ich kenne Goto nur im Umfeld der Fehlerbehandlung.
Allerdings könntest du es vom Ansatz her auch so lösen:
zahl = 0
lol = 0
Call rofl(lol)
Do
If lol = 4 Then 'VbRetry then
zahl = zahl + 1
Call rofl(lol)
Else
x = msgbox(„Du hast " & zahl & " mal gedrückt.“, 0 , „gedrückt“)
Exit Do
End If
Loop
Sub rofl(lol)
lol = msgbox(„Du hast schon " & zahl & " mal gedrückt.“, 5, „gedrückt“)
end sub
Ich hoffe mal, dass ich Dir weiter helfen konnte.
Viele Grüße
Stefan