Array2DInsert umsetzungsproblem

  • Aktuelle Lage,
    ich versuche aus einer Excell Tabelle Daten auszulesen, diese zu editieren und dann wieder zurückzuschreiben.

    Hierbei habe ich das verständnis Problem wie ich bei Array2DInsert 2 (oder mehr) werte ändere.

    folgender code abschnitt:

    ich habe im oberen Teil des Scripts

    [autoit]

    #include <_array2DInsert.au3>

    [/autoit]

    eingefügt.

    [autoit]

    ;umblättern zum letzten Monat
    _ExcelSheetActivate($oExcel, $lastmonth)

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

    ;Sheet auslesen mit allem was drinnen ist
    $aArray = _ExcelReadSheetToArray($oExcel)

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

    ;_arraydisplay($aArray,"")

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

    ;umblättern zum aktuellen Kalenderblatt
    _ExcelSheetActivate($oExcel, $month)

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

    ;$avArray = $aArray

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

    _Array2DInsert($aArray, 12, "Wert|Wert2|Wert3|wert4|variable") ; 12 sollte eigentlich der Wert sein für [1][2]

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

    _ExcelWriteSheetFromArray($oExcel, $aArray, 1, 1, 1, 1) ;0-Base Array parameters

    [/autoit]

    Wie man unschwer erkennen kann, liegt rein ein Erklärungs/verständnis defizit vor wie die Funktion zum Beispiel funktionieren würde.

    bin für jeden Hinweis dankbar.

    Einmal editiert, zuletzt von Vincinzerei (1. September 2009 um 09:56)

    • Offizieller Beitrag

    Poste mal die _array2DInsert.au3.

    Edit

    [autoit]

    _Array2DInsert($aArray, 12, "Wert|Wert2|Wert3|wert4|variable") ; 12 sollte eigentlich der Wert sein für [1][2]

    [/autoit]


    Würde die Werte an 12. Stelle Einfügen.
    An 1. Stelle müßte das dann so heißen:

    [autoit]

    _Array2DInsert($aArray, 1, "Wert|Wert2|Wert3|wert4|variable") ; 12 sollte eigentlich der Wert sein für [1][2]

    [/autoit]
    • Offizieller Beitrag

    "_Array2DInsert($aArray, 12, "Wert|Wert2|Wert3|wert4|variable") ; 12 sollte eigentlich der Wert sein für [1][2]"

    Das geht so nicht! Schau dir die Funktionsdeklaration noch mal an:
    _Array2DInsert(ByRef $avArray, $iElement [, $sValue=''])
    $avArray - dein Array
    $iElement - 0-basierter ArrayIndex, zum Einfügen des neuem Elements
    (optional) $sValue - Wert(e) des neuen Elements, getrennt mit '|'

    Insert bedeutet, du fügst ein neues Element (Zeile) in dein Array ein. Du mußt also die Werte für alle enthaltenen Spalten angeben!
    Wenn du also an ZeilenIndex 1 ein neues Element einfügst und nur in SpaltenIndex 2 die 12 eintragen möchtest bei insgesamt 5 Spalten, wäre das folgende Syntax:

    [autoit]

    _Array2DInsert($aArray, 1, "0|0|12|0|0")

    [/autoit]
  • Wie bereits angedeutet war es nur ein verstänndnisproblem. der Beispielcode hat alle unklarheiten beseitigt.