Brauch Hilfe mit Variablen!

09/24/2010 16:47 IwH#1
Hi Leute!
Schonmal vorweg: Ich code mit AutoIT (nur für den Fall das ich mich im Forum verirrt hab...) und bin schon meiner Meinung nach in meinem Skript sehr weit. Nun ist meine Frage: Wie schaffe ich es, wenn ich die Variable $points hab, sie mit 1 zu addieren? Bsp.:
$points = 0
If ... = "..." Then
;es soll $points mit 1 addieren, ich hab $points = + 1 geschrieben
ElseIf ... = "..." Then
; Das gleiche wie oben
EndIf
So, mein gesamtes Skript findet ihr im Spoiler
Es ist für einen Vokabelabfrager, aber auch ein bischen Training für mein
Universalbot...
09/24/2010 17:23 | Moep |#2
$point = $point +1
09/24/2010 17:48 IwH#3
Yeah! Danke! Jetzt ist der cursus Vokabeltester einsatzbereit :D Aber wie mach ich es, dass ich mehrere Kapitel abfragen kann? Ich hab am Anfang eine InputBox, die fragt, aus welchem Kapitel, aber ich glaub nicht, dass da die If schleife etwas bringt. Die SuFu sagt select-schleife, ich weiß nicht was damit gemeint ist, bzw. wie man es anwendet. und ja, brain.exe hab ich :D:D
Mfg Iwh
09/24/2010 17:57 mipez#4
Schau dir IniRead bzw. Write an...
Über die .ini wirds dann relativ einfach:

[Kapitel 1]
1=whatever/deutsch
2=.../...
[Kapitel 2]
1=.../...
...

Code:
$kstring = InputBox("Kapitelauswahl","Bitte eine Zahl von 1-3 angeben")
$vstring = IniReadSection("vok.ini","Kapitel " &$kstring)
$sstring = StringSplit($vstring,"/")
$cstring = InputBox("Kapitel 1","Vokabel 1:"&@crlf&$sstring[1])
If $cstring = $sstring[2] Then 
MsgBox(0,"","Richtig")

EDIT:
Älteres Projekt von mir, vllt findest du ja was brauchbares...
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Vokabeltrainer 0.1", 297, 150, 532, 287)
$Label1 = GUICtrlCreateLabel("", 56, 16,100,20)
$Input1 = GUICtrlCreateInput("", 16, 56, 121, 21)
$Button1 = GUICtrlCreateButton("OK/Start", 16, 88, 121, 25)
$Button2 = GUICtrlCreateButton("Liste anzeigen", 152, 14, 121, 25)
$Button3 = GUICtrlCreateButton("Neue Vokabel", 152, 54, 121, 25)
$Label2 = GUICtrlCreateLabel("", 185, 95,100,20)

$Menu = GUICtrlCreateMenu ("Sprache")
$Item = GUICtrlCreateMenuitem ("Sprache ändern",$Menu)
$Item2 = GUICtrlCreateMenuitem ("Hilfe",$Menu)
$Item3 = GUICtrlCreateMenuitem ("Credits",$Menu)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Global $temparray[1]
Global $tstring

$tmsg = MsgBox(4,"Hilfe anzeigen?","Hilfe anzeigen?")
If $tmsg = 6 Then
    MsgBox(0,"Hilfe","Bei jedem Start müssen Sie ihre .ini mit den Vokabeln laden" & @crlf & "Diese ist wie folgt aufgebaut:" & @crlf & "[Vok]" & @crlf & "Vok=Dump/Dump" & @crlf & "Vok2=Vokabel1/Übersetzung1" & @crlf & "Vok3=Vokabel2/Übersetzung2" & @crlf & "..." & @crlf & @crlf & "<Neue Vokabel> erstellt einen neuen Eintrag in der geladenen .ini oder erstellt eine neue, falls sie anfangs keine geladen haben")
    $filea = FileOpenDialog(".ini auswählen",@tempdir,".ini (*.ini)",1)
    Global $fileb = StringReplace($filea,"|","/")
Else
$filea = FileOpenDialog(".ini auswählen",@tempdir,".ini (*.ini)",1)
Global $fileb = StringReplace($filea,"|","/")
EndIf

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Item
            $filea = FileOpenDialog(".ini auswählen",@tempdir,".ini (*.ini)",1)
            Global $fileb = StringReplace($filea,"|","/")
            _update()
        Case $Item2
            MsgBox(0,"Hilfe","Bei jedem Start müssen Sie ihre .ini mit den Vokabeln laden" & @crlf & "Diese ist wie folgt aufgebaut:" & @crlf & "[Vok]" & @crlf & "Vok=Dump/Dump" & @crlf & "Vok2=Vokabel1/Übersetzung1" & @crlf & "Vok3=Vokabel2/Übersetzung2" & @crlf & "..." & @crlf & @crlf & "<Neue Vokabel> erstellt einen neuen Eintrag in der geladenen .ini oder erstellt eine neue, falls sie anfangs keine geladen haben")
        Case $Item3
            MsgBox(0,"Credits","mipez: idea & scripting" & @CRLF & "(c) mipez, 2010")
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            _check()
        Case $Button2
            _list()
        Case $Button3
            _new()

    EndSwitch
WEnd

Func _new()
    $put = InputBox("Vokabel","Bitte die Vokabel in Deutsch eingeben")
    $put2 = InputBox("Vokabel","Übersetzung")
    $vokread = IniReadSection($fileb,"Vok")
    If @error Then
        MsgBox(0,"Neue .ini", "Es wird eine neue Vok.ini erstellt, bitte Neueingabe wiederholen")
        IniWrite($fileb,"Vok","Vok","Dump/Dump")
    Else
    IniWrite($fileb,"Vok","Vok" & $vokread[0][0]+1, $put & "/" & $put2)
    EndIf
EndFunc

Func _list()
    $hj = IniReadSection($fileb,"Vok")
    _ArrayDisplay($hj)
EndFunc



Func _update()
    $tok = IniReadSection($fileb,"Vok")
    If not @error Then
    $z =Random(2,$tok[0][0],1)
    $tak = IniRead($fileb,"Vok","Vok" & $z,"")
    $tstring = StringSplit($tak,"/")
    $z2 = Random(1,2,1)
    If $z2 = 1 Then 
        $temparray[0] = 1
    ElseIf $z2 = 2 Then 
        $temparray[0] = 2
    EndIf
    GUICtrlSetData($Label1,$tstring[$z2])
    EndIf

EndFunc

Func _check()
    $r3 = GUICtrlRead($Input1)
    $zt = FileExists($fileb)
    If NOT $zt = True Then 
        MsgBox(0,".ini nicht gefunden","Vok.ini konnte nicht gefunden werden")
    Else
        If $r3 = "" Then 
            _update()
        Else
            If $temparray[0] <> 1 Then
                If $r3 = $tstring[1] Then
                    GUICtrlSetData($Label2,"Richtig!")
                    GUICtrlSetData($Input1,"")
                    Sleep(500)
                    _update()
                Else
                    GUICtrlSetData($Label2,"Falsch!")
                EndIf
            ElseIf $temparray[0] <> 2 Then
                If $r3 = $tstring[2] Then
                    GUICtrlSetData($Label2,"Richtig!")
                    GUICtrlSetData($Input1,"")
                    Sleep(500)
                    _update()
                Else
                    GUICtrlSetData($Label2,"Falsch!")
                EndIf
            EndIf
        EndIf
    EndIf
EndFunc
09/24/2010 18:00 omer36#5
oder eine kleine gui indem mann auswählen kann....

PHP Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
$Form1 GUICreate("Form1"165129192124)
$Button1 GUICtrlCreateButton("kapitel 1-4"28168125)
$Button2 GUICtrlCreateButton("4-8"28528125)
$Button3 GUICtrlCreateButton("8-10"28888125)
GUISetState(@SW_SHOW)


While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            start1
()
        Case 
$Button2
            start2
()
        Case 
$Button3
            start3
()
    EndSwitch
WEnd

Func start1
()
MsgBox("","","1 - 4")
EndFunc

Func start2
()
MsgBox("","","4 - 8")
EndFunc

Func start3
()
MsgBox("","","8 - 10")
EndFunc 
09/24/2010 21:29 einkeks95#6
Quote:
$point = $point +1
... oder $point += 1 (kürzer und {besser}!) ;)
09/24/2010 21:33 omer36#7
Quote:
Originally Posted by einkeks95 View Post
... oder $point += 1 (kürzer und {besser}!) ;)
was genau soll da dann {besser} sein?
09/25/2010 14:17 IwH#8
thanks! jeder der geholfen hat, hat eins :D ich glaube die idee mit dem gui finde ich am besten! wenn ich wieder irgendwelche schwierigkeiten hab, meld ich mich!
Mfg Iwh
09/25/2010 14:23 MoepMeep#9
Quote:
Originally Posted by IwH View Post
If schleife

wtf?
09/25/2010 16:20 IwH#10
Quote:
Originally Posted by MoepMeep View Post
wtf?
Sehr hilfreich, ne scherz :rolleyes:
Kann halt noch nicht so gut mit AutoIT umgehen, versuch aber es zu lernen. Will mir auch keine Feinde machen, weil ich was auch immer noch nicht kann ;)

/edit: Ich hab ein Skript, indem ich einfach nur ein Func + die Hotkeybelegung habe.
Wenn ich es aktiviere und den Hotkey drücke, passiert aber nichts:
09/25/2010 16:31 omer36#11
erstmal solltest dudir angewöhnen dein hotkeysett immer ganz oben zu schreiben!
und so kann nichts passieren, weil sich dein script sofort beendet, darum musst du unten noch ne while schleife einfügen, zbso:

PHP Code:

Hotkeyset 
"{F9}""_blabla" )

Func _blabla()
      
Send "VK ..." )
EndFunc

While 1
    Sleep
(100)
WEnd 
09/25/2010 16:43 MoepMeep#12
Quote:
Originally Posted by IwH View Post
Sehr hilfreich, ne scherz :rolleyes:
Kann halt noch nicht so gut mit AutoIT umgehen, versuch aber es zu lernen. Will mir auch keine Feinde machen, weil ich was auch immer noch nicht kann ;)
Der nächste, der "if-schleife" sagt, wird von mir erschossen, gevierteilt, überfahren und gesteinigt.
09/25/2010 16:47 mipez#13
If-Schleife, If-Schleife :awesome:
While 1
If $start = 1 Then
Send("bla")
Else
Send("blabla")
EndIf
WEnd

Btt. HotkeySet is halt blöde wenn man nur temporär n Hotkey erstellen will xD
_IsPressed rulez!
09/25/2010 17:08 lolkop#14
Quote:
Originally Posted by MoepMeep View Post
Der nächste, der "if-schleife" sagt, wird von mir erschossen, gevierteilt, überfahren und gesteinigt.
if ist und bleibt natürlich eine abfrage... jedoch können mithilfe von abfragen auch sehr gut schleifen realisiert werden (stichwort rekursion)

Code:
If_Loop()

Func If_Loop($a = 0)
	If $a < 20 Then If_Loop($a+1)
	ConsoleWrite($a&@CRLF)
EndFunc
das gleiche gilt für schleifen. jede schleife kann auch als normale abfrage genutzt werden.

also so absurd ist das nutzen von "if-schleife" garnicht :P
09/25/2010 18:26 MoepMeep#15
Quote:
Originally Posted by lolkop View Post
if ist und bleibt natürlich eine abfrage... jedoch können mithilfe von abfragen auch sehr gut schleifen realisiert werden (stichwort rekursion)

Code:
If_Loop()

Func If_Loop($a = 0)
	If $a < 20 Then If_Loop($a+1)
	ConsoleWrite($a&@CRLF)
EndFunc
das gleiche gilt für schleifen. jede schleife kann auch als normale abfrage genutzt werden.

also so absurd ist das nutzen von "if-schleife" garnicht :P
pfui pfui pfui!