Ini in Gui Felder einlesen

  • Hallo,

    wie kann man eine ini in Gui Felder einlesen?

    So öffne ich die ini:

    [autoit]


    $rot = IniRead($openini, "Farben", $i, "NotFound")
    MsgBox(4096, "INI", $rot)

    [/autoit]

    das geht,

    meine Gui hat nun Textfelder
    und in diese Felder soll der Wert!

    z.B. so:

    GuiFeld1= $rot

    Grüße
    Ilse :(

    Einmal editiert, zuletzt von Ilse (22. September 2010 um 15:24)

  • In dem du Felder erstellst

    [autoit]

    $feld=GUICtrlCreateLabel("ich bin ein Feld",30,30,30)
    $rot = IniRead($openini, "Farben", $i, "NotFound")
    GuictrlsetData($feld, $rot)

    [/autoit]

    2 Mal editiert, zuletzt von Kizum (21. September 2010 um 18:16)

  • Danke für die Superschnelle Antwort!

    GuictrlsetData das hat mir gefehlt!

    Folgendes Problem habe ich noch:
    Die Felder heißen txtFeld
    und diese sind alle nummeriert!
    Also, txtFeld1, txtFeld2...

    [autoit]


    $Feld = "txtfeld"
    ;MsgBox(4096, $Feld, $rot)
    GuictrlsetData($Feld&$i, $rot)

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

    das geht irgendwie nicht!
    Grüße
    Ilse ;)

    2 Mal editiert, zuletzt von Ilse (21. September 2010 um 18:53)

  • Dann machs so ;)

    Benn nenn die txtfelder um und leg arrays an ungefähr so:

    [autoit]


    Dim $txtfeld[2];immer 1 mehr als des höchste txtfeld array
    $txtfeld[0] = GUICtrlCreateInput()
    $txtfeld[1] = GUICtrlCreateEdit()
    ;und so rufst du die dann auf:
    GuictrlsetData($txtfeld[$i], $rot)

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Hallo,

    das mit den Arrays hat leider nicht funktioniert!

    Spoiler anzeigen


    Global $i=0

    Do

    $i +=1

    $MeineIni = IniRead($openini, "Suchkriterium", $i, "NotFound")

    Dim $txtlink[4];Die Gui hat 10 Felder zum Test 4

    $txtlink[0] = GUICtrlCreateInput()
    $txtlink[1] = GUICtrlCreateInput()
    $txtlink[2] = GUICtrlCreateInput()

    GuictrlsetData($txtlink[$i], $MeineIni)


    Until $i = 4

    GuiCtrlCreateInput...das versteh ich nicht ganz,
    diese Zeilen wurden bereits mit Koda erstellt!
    Muß ich die mit den Positionen neu setzen?

    Grüße
    Ilse

  • Wie sieht denn das gesamte Script aus? Übrigens würde ich IniReadSection nehmen und dann in ner For-Next-Schleife die Werte zuteilen.

  • Hallo m-obi,

    ich habe mal das ganze bereinigt und ein neues Script gemacht!

    So ist z.B. die ini

    Spoiler anzeigen


    [Felder]
    1=Text1
    2=Text2
    3=Text3
    4=Text4
    5=Text5
    6=Text6
    7=Text7
    8=Text8
    9=Text9
    10=Text10

    Das ist die Gui mal mit 3 Feldern:

    Spoiler anzeigen


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region
    $Form1 = GUICreate("Form1", 517, 170, 303, 240)
    $MenuItem1 = GUICtrlCreateMenu("Datei")
    $men_open = GUICtrlCreateMenuItem("Öffnen", $MenuItem1)
    $men_save = GUICtrlCreateMenuItem("speichern", $MenuItem1)
    $Input1 = GUICtrlCreateInput("Input1", 272, 16, 185, 21)
    $Input2 = GUICtrlCreateInput("Input2", 272, 48, 185, 21)
    $Input3 = GUICtrlCreateInput("Input3", 272, 80, 185, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $men_open
    $openini = FileOpenDialog("Bitte wählen Sie einen Katalog:", @Scriptdir & "\", "Einstellungen (*.ini;*.txt)", 1 + 4 )
    If @error Then
    MsgBox(4096,"","No File(s) chosen")
    Else
    $openini = StringReplace($openini, "|", @CRLF)

    EndIf


    Case $men_save
    EndSwitch
    WEnd

    Die Felder sollten mit dem Inhalt der ini angezeigt werden
    und falls möglich per Inputbox im Menüpunkt gespeichert werden.

  • Hallo hier ist dein Script mit speichern

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $Input[3]
    #region
    $Form1 = GUICreate("Form1", 517, 170, 303, 240)
    $MenuItem1 = GUICtrlCreateMenu("Datei")
    $men_open = GUICtrlCreateMenuItem("Öffnen", $MenuItem1)
    $men_save = GUICtrlCreateMenuItem("speichern", $MenuItem1)
    $Input[0] = GUICtrlCreateInput("Input1", 272, 16, 185, 21)
    $Input[1] = GUICtrlCreateInput("Input2", 272, 48, 185, 21)
    $Input[2] = GUICtrlCreateInput("Input3", 272, 80, 185, 21)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $men_open
    $openini = FileOpenDialog("Bitte wählen Sie einen Katalog:", @ScriptDir & "\", "Einstellungen (*.ini;*.txt)", 1 + 4)
    If @error Then
    MsgBox(4096, "", "No File(s) chosen")
    Else
    $openini = StringReplace($openini, "|", @CRLF)
    For $i=0 to UBound($Input)-1
    $MeineIni = IniRead($openini, "Felder", $i, "NotFound")
    GUICtrlSetData($Input[$i],$MeineIni)
    $MeineIni = ""
    Next
    EndIf
    Case $men_save
    $saveini = FileSaveDialog("Bitte wählen Sie einen Katalog:", @ScriptDir & "\", "Einstellungen (*.ini;*.txt)", 16)
    If @error Then
    MsgBox(4096, "", "No File(s) chosen")
    Else
    For $i=0 To UBound($Input)-1
    IniWrite($saveini,"Felder",$i,GUICtrlRead($Input[$i]))
    Next
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    UNd hier noch die ini hab die ein bisschen angepasst

    Spoiler anzeigen

    Edit: scheiß Google Chrome. Da geht die formatierung immer flöten X(

  • Hallo,

    habe nochmals Arrays integriert,
    aber es klappt einfach nicht!

    Spoiler anzeigen


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region
    $Form1 = GUICreate("Form1", 517, 170, 303, 240)
    $MenuItem1 = GUICtrlCreateMenu("Datei")
    $men_open = GUICtrlCreateMenuItem("Öffnen", $MenuItem1)
    $men_save = GUICtrlCreateMenuItem("speichern", $MenuItem1)
    $Input1 = GUICtrlCreateInput("Input1", 272, 16, 185, 21)
    $Input2 = GUICtrlCreateInput("Input2", 272, 48, 185, 21)
    $Input3 = GUICtrlCreateInput("Input3", 272, 80, 185, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $men_open
    $openini = FileOpenDialog("Bitte wählen Sie einen Katalog:", @Scriptdir & "\", "Einstellungen (*.ini;*.txt)", 1 + 4 )
    If @error Then
    MsgBox(4096,"","No File(s) chosen")
    Else
    $openini = StringReplace($openini, "|", @CRLF)

    $Feld1 = IniRead($openini, "Suchkriterium", "1", "NotFound")
    $Feld2 = IniRead($openini, "Suchkriterium", "2", "NotFound")
    MsgBox(4096, "test", $Feld1)
    ;$Input1=$Feld1
    Global $i=0
    ;Hier beginnt der Loop
    Do

    $i +=1
    Dim $input[3];
    $input[0] = GUICtrlCreateInput("", 88, 96, 217, 24)
    $input[1] = GUICtrlCreateInput("", 88, 120, 217, 24)
    $input[2] = GUICtrlCreateInput("", 88, 144, 217, 24)

    GuictrlsetData($input[$i], $Feld1)


    Until $i = 3
    EndIf


    Case $men_save
    EndSwitch
    WEnd

  • Hallo Mysterio,

    habe gerade erst dein Posting gelesen!
    Funktioniert Prima!

    Huh... was für ein Tag!
    Dank Dir vielmals!!!!!

    Liebe Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (22. September 2010 um 15:22)

  • Noch was zum Thema Öffnen, du willst doch bestimmt nicht mehrere Dateien auf einmal öffnen oder? Sondern immer nur einen Katalog. Also reicht eine 1 und die 4 kann weg, somit kann auch das StringReplace weg.
    So wäre dann dazu mein Code.

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $aInput[3]

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

    $hGui = GUICreate("Form1", 517, 170, 303, 240)
    $hMenu1 = GUICtrlCreateMenu("Datei")
    $hMenu1Item1 = GUICtrlCreateMenuItem("Öffnen", $hMenu1)
    $hMenu1Item2 = GUICtrlCreateMenuItem("Speichern", $hMenu1)
    For $i = 0 To UBound($aInput) - 1
    $aInput[$i] = GUICtrlCreateInput("Input" & $i + 1, 272, 16 + 32 * $i, 185, 21)
    Next
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hMenu1Item1
    $sOpen = FileOpenDialog("Bitte wählen Sie einen Katalog:", @Scriptdir & "\", "Einstellungen (*.ini;*.txt)", 1, "", $hGui)
    If @error Then
    MsgBox(4096,"","No File(s) chosen")
    Else
    $aIniSection = IniReadSection($sOpen, "Felder")
    If Not @error Then
    For $i = 0 To UBound($aInput) - 1
    GUICtrlSetData($aInput[$i], $aIniSection[$i + 1][1])
    Next
    EndIf
    EndIf
    Case $hMenu1Item2
    EndSwitch
    WEnd

    [/autoit]