Mit ini Funktion starten?

  • Hallo,

    ich habe viele Funktionen geschrieben.
    Diese muß ich in einer ini verwalten.

    Nach Bedarf sollten diese dann gestartet werden.

    Hier mal mein Script

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 636, 193, 192, 124)
    $Hunde = GUICtrlCreateButton("Hunde", 48, 88, 75, 25)
    $Rassen = GUICtrlCreateButton("Rassen", 128, 88, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $iniwahl=IniRead("Tiere.ini","Tiere","1","0")
    ;MsgBox(0,"",$iniwahl)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Hunde

    [/autoit] [autoit][/autoit] [autoit]

    $func=IniRead("Tiere.ini","Funktion","1","0")
    MsgBox(0,"Funktion soll starten",$func)
    Case $Rassen
    $func=IniRead("Tiere.ini","Funktion","2","0")
    MsgBox(0,"Funktion soll starten",$func)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Namen()
    Msgbox(0,"Namen","Namen wird gestartet")
    ;.....
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Rassen()
    Msgbox(0,"Rassen","Rassen werden gestartet")
    ;.....
    EndFunc

    [/autoit]

    Meine ini sieht so aus:

    Spoiler anzeigen


    [Funktion]
    1=Namen()
    2=Rassen()
    [Tiere]
    1=http://www.hunde.de
    2=http://www.hunderassen.de

    komme da einfach nicht weiter

    Liebe Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (28. Juli 2011 um 10:29)

  • Wäre doch geschickter wenn in der Ini einfach nur schresbt 1=Namen 2=Rassen usw. und dann mit if prüfst.

    Also so das Script:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 636, 193, 192, 124)
    $Hunde = GUICtrlCreateButton("Hunde", 48, 88, 75, 25)
    $Rassen = GUICtrlCreateButton("Rassen", 128, 88, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $iniwahl = IniRead("Tiere.ini", "Tiere", "1", "0")
    ;MsgBox(0,"",$iniwahl)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Hunde

    [/autoit] [autoit][/autoit] [autoit]

    $func = IniRead("Tiere.ini", "Funktion", "Hunde", "0")
    If $func = 1 Then
    Hunde()
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Rassen
    $func = IniRead("Tiere.ini", "Funktion", "Rassen", "0")
    If $func = 1 Then
    Rassen()
    EndIf
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Namen()
    MsgBox(0, "Namen", "Namen wird gestartet")
    ;.....
    EndFunc ;==>Namen

    [/autoit] [autoit][/autoit] [autoit]

    Func Rassen()
    MsgBox(0, "Rassen", "Rassen werden gestartet")
    ;.....
    EndFunc ;==>Rassen

    [/autoit]

    Und so die Ini:

    Spoiler anzeigen
    Code
    [Funktion]
    Namen=1
    Rassen=1
    [Tiere]
    1=http://www.hunde.de
    2=http://www.hunderassen.de

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (28. Juli 2011 um 10:20)

  • chip

    merci, klar aber mit if ist es sehr umständlich
    weil die inis sehr groß sind.
    Ich habe das mit den Nummern klar strukturiert!
    1=Seite...
    1=passende Funktion
    1=Namen....

    Per loop muß ich anhand der Nr. die passende Funktion starten, fertig (ohne if...)

    @ Misterspeed
    super das funktioniert!
    ...und wieder was gelernt...

    Liebe Grüße
    Ilse ;)