killervirus98
Goto Top

VB Script Inputbox dringende Frage!

Hallo liebe Community. Ich muss als Hausaufgaben für Informatik ein kleines VB Script schreiben, in dem man mit einer Inputbox Rechnungen abfragen muss. Und es sollte erst zum nächsten Fenster wechseln, wenn das Ergebnis richtig eingetippt wurde. Ich weiss aber nicht, wie ich das machen soll. Und ja, ich kenne Google, hab da aber irgendwie nichts gescheites gefunden. Ich wäre sehr dankbar für eine schnelle Hilfe.

Content-Key: 196888

Url: https://administrator.de/contentid/196888

Printed on: April 16, 2024 at 08:04 o'clock

Member: Friemler
Friemler Jan 13, 2013 at 12:31:37 (UTC)
Goto Top
Hallo,

hier wird Dir keiner Deine Hausaufgaben machen!

Für den von Dir beschriebenen Zweck gibt es in VBScript Do...Loop While <Bedingung>.

Gruß
Friemler
Member: killervirus98
killervirus98 Jan 13, 2013 updated at 14:42:32 (UTC)
Goto Top
Ich möchte aber, dass es weitergeht wenn etwas bestimmtes (Das richtige ergebnis) eingegeben wird, und nicht dass es wiederholt wird wenn man es eingibt, also genau anders rum

Bis jetzt sieht die Inputbox so aus:

a = inputbox ("1+4/2.5")

if a = "2.6" Then
b = msgbox("Richtig! Und weiter gehts!")
Else
c = msgbox("Falsch, versuchs nochmal")
End if

Und jetzt sollte das eingabe feld nochmals erscheinen, wenn die Eingabe nicht 2.6 (Ergebnis) ist. Wenn die Eingabe jedoch stimmt, sollte es zur nächsten Aufgabe übergehn.
Member: bastla
bastla Jan 13, 2013 updated at 15:01:37 (UTC)
Goto Top
Hallo killervirus98 und willkommen im Forum!

Wie schon von Friemler angemerkt, sollst Du anhand dieses Beispiels den Umgang mit Schleifen lernen / üben - ich würde allerdings eher Do ... Loop Until verwenden.

Grüße
bastla

P.S.: Auch wenn Du es eilig hast, solltest Du eine passende Formatierung (als "Code") verwenden.
Member: Friemler
Friemler Jan 13, 2013 at 15:06:33 (UTC)
Goto Top
Hallo,

Zitat von @killervirus98:
Ich möchte aber, dass es weitergeht wenn etwas bestimmtes (Das richtige ergebnis) eingegeben wird

Das kann man auch anders herum formulieren:

Du möchtest, dass es wiederholt wird, wenn etwas falsches eingegeben wird.

Vielleicht wird Dir jetzt der Sinn einer Schleife in diesem Zusammenhang klar.

Gruß
Friemler
Member: mayho33
mayho33 Jan 14, 2013 at 14:55:38 (UTC)
Goto Top
also ganz rudimentär würde das eventuell so aussehen:

dim in: in = inputbox(irgendwas)
do
if berechnen = "dein ergebnis" then
exit do
loop until <Abbruchbedingung>

function berechnen()
...
...
...
end function
Member: bastla
bastla Jan 14, 2013 updated at 16:21:41 (UTC)
Goto Top
@ mayho33
Rudimentär kann man das auch nennen face-wink ...

... gemeint war aber vermutlich eher
Do
    a = InputBox("1+4/2.5")  
Loop Until a = "2.6"  
MsgBox "Richtig! Und weiter gehts!"  
bzw wenn gesteigerter Wert auf den Hinweis, dass die Eingabe falsch war, gelegt wird:
a = InputBox("1+4/2.5")  
Do Until a = "2.6"  
        a = InputBox("Fehler - versuch's nochmal!" & vbNewline & vbNewLine & "1+4/2.5")  
Loop
MsgBox "Richtig! Und weiter gehts!"  
Eleganter (dann kann auch die Eingabe mit Dezimalkomma anstatt -punkt erfolgen):
Aufgabe = "1+4/2.5"  
Do
    a = InputBox(Aufgabe)
Loop Until a = Eval(Aufgabe)
MsgBox "Richtig! Und weiter gehts!"  
Grüße
bastla

P.S.: Ganz nebenbei ist "in" übrigens ein reserviertes Wort, das nicht als Variablenname verwendet werden kann ...