Iniwritesection Problem mit einem Array

  • Moin,

    ich hab ein kleines Problem und zwar.Erstmal mein Quellcode (Ist nur ein Ausschnitt):

    So nun gibt mir aber Iniwritesection ein Fehler aus die var $iniMAIN gibt es natürlich.Woran kann das denn liegen.
    Schon mal vielen Dank. ;)

    :thumbup:

    Einmal editiert, zuletzt von bobekos (15. Oktober 2012 um 13:17)

  • "IniWriteSection($iniMAIN,"TEST",$aFELD)" <- nimm doch statt der Variable einfach dein Array?

    [autoit]

    $aFELD[$x][$y]

    [/autoit]

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • "IniWriteSection($iniMAIN,"TEST",$aFELD)" <- nimm doch statt der Variable einfach dein Array?

    [autoit]

    $aFELD[$x][$y]

    [/autoit]


    Deine Methode funktioniert leider auch nicht. Die Hilfe Datei sagt:
    Das Array muss 2D sein. ->ist es
    Dabei wird die zweite Dimension als das Element gespeichert.
    Also musste

    [autoit]


    $aFELD

    [/autoit]


    reichen.Man ich hab einfach keine Idee was das sein könnte.

    :thumbup:

  • "IniWriteSection($iniMAIN,"TEST",$aFELD)" <- nimm doch statt der Variable einfach dein Array?

    [autoit]

    $aFELD[$x][$y]

    [/autoit]

    $aFeld ist das Array, $aFELD[$x][$y] dagegen nur ein Element des Arrays. Von daher kann ich anhand des Skriptschnipsels keine Fehler erkennen, wundere mich aber warum immer die komplette Sektion in der Schleife zurückgeschrieben wird.

    bobekos: poste zumindest die Fehlermeldung und die kopierte Ausgabe von

    [autoit]

    _ArrayDisplay($aFeld);vor GUICtrlSetImage einfügen

    [/autoit]

    besser auch noch dein Skript.

    mfg autoBert

  • habs mal getestet und natürlich ein bissl umgebaut..

    Spoiler anzeigen
    [autoit]

    ;array 2d-test

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

    dim $aFELD[24][24]

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

    for $i = 1 to 23
    for $z = 1 to 23
    $aFELD[$i][$z] = "blubb"
    Next
    Next

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

    For $x = 0 to 23 Step 1
    For $y = 21 to 23 Step 1
    IniWriteSection("test.ini","TEST",$aFELD[$x][$y])
    If @error Then
    Exit
    EndIf
    Next
    Next

    [/autoit]

    es funktioniert wirklich nur mit $aFELD[$x][$y]

    und ausserdem hast du ein "Next" zu wenig im script (2x for, 1x next)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • es funktioniert wirklich nur mit $aFELD[$x][$y]


    Dei Testskript prduzert eine nicht Windowskonforme IniDatei:

    Spoiler anzeigen

    aber dadurch sehe ich den Fehler, der Aufbau den bobekos erreichen will kann nicht funktionieren da das Array nur 2 Spalten haben darf:

    Spoiler anzeigen
    [autoit]

    dim $aFELD[24][2]
    IniDelete("test.ini","TEST")

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

    for $i = 1 to 23
    $aFELD[$i][0] = "Wert"&$i
    $aFELD[$i][1] = "blubb"&$i
    Next

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

    IniWriteSection("test.ini","TEST",$aFELD)

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

    er muss sich also ein anderes Schma einfallen lassen.

    mfg autoBert

  • Ich hab jetzt das Problem nicht so ganz verstanden :D Also mein Array hat doch 2 Spalten oder sehe ich da was falsch?

    Ich hab das Problem jetzt mit:

    [autoit]


    IniWrite($iniMAIN,"TEST",$x,$y)

    [/autoit]


    gelöst. Sonst würde mir natürlich Iniwritesection auch jedesmal eben eine neue Section machen (denke ich mal).
    Vielen Dank für eure Hilfe! ;)

    :thumbup:

  • Ich hab jetzt das Problem nicht so ganz verstanden :D Also mein Array hat doch 2 Spalten oder sehe ich da was falsch?


    Das siehst du falsch dein Array hat 2 Dimensionen, 24 Zeilen und jede Zeile 24 Spalten.

    Ich hab das Problem jetzt mit:

    [autoit]

    IniWrite($iniMAIN,"TEST",$x,$y)

    [/autoit]


    gelöst.

    Kann mir nicht vorstellen dass die Werte in der Ini das sind was du möchtest. Falls du dein Skript nicht noch anders umgebaut hast erhälst du folgendes Ergebnis:

    Spoiler anzeigen

    was ja sonlos ist. Solltest du also noch Prbleme haben solltest du dein Vorhaben genauer schildern und am besten dein Skript mit einstellen.

    Sonst würde mir natürlich Iniwritesection auch jedesmal eben eine neue Section machen (denke ich mal).


    Nein es würde jedesmal die Sektion "Test" überschrieben.