Array aus IniReadSection um einen Eintrag erweitern

    • Offizieller Beitrag

    Hallo ich lese im Moment mit IniReadSection einen Bereich in meiner ProgrammIni ein.
    Jetzt habe ich eine zweite Zeile, bei der ich auf der ersten Zeile die Kopfeinträge auslese. Jetzt möchte ich die Position bestimmter Kopfeinträge gern in dem ParamterArray mit ablegen. Einfach um nicht noch mehr Einträge aufzumachen.

    meine Versuche bisher

    [autoit]

    $params = IniReadSection($s_iniFile,"templatevars")
    $anzahl = $params[0][0]

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

    ; Zeiger auf Excelfile
    $xlsfile = _ExcelBookOpen($s_addressfile, 0, False)
    $headerarray = _ExcelReadArray($xlsfile, 2, 1, 100, 0, 1)
    _ArrayDisplay($headerarray)

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

    ; HTML Template einlesen
    $htmlfile = FileRead($s_htmltemplate, FileGetSize($s_htmltemplate))

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

    for $n = 1 To ubound($headerarray)
    if $headerarray[$n][1] = $params[$n][0] then
    msgBox(0,"Gefunden","Wert: " & $headerarray[$n][1] & " an Pos: " & $n)
    EndIf
    Next
    _ArrayDisplay($params)

    [/autoit]

    die folgende Fehlermeldung:
    if $headerarray[$n][1] = $params[$n][0] then
    if ^ ERROR

    Ich denke, da kann nur ein Denkfehler drin sein.

    Hat jemand ne Idee dazu?

  • Hallo.
    Also ich bin mir nicht sicher ob es das problem löst, aber ersetzte mal

    [autoit]

    for $n = 1 To ubound($headerarray)

    [/autoit]


    durch folgendes:

    [autoit]

    for $n = 0 To ubound($headerarray) - 1

    [/autoit]

    Ich hoffe ich konnte weiterhelfen.
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Könntest du vllt. auch mal Zeigen was in der Ini steht damit man ausprobieren kann was man gescriptet hat?

    Edit:
    Vllt. hat sich der Fehler doch geändert, guck mal ob er sich noch auf die gleiche Variable bezieht


    So dürfte eigentlich kein Fehler mehr kommen, wenn doch musst du mal alles Posten, denn so kann man nicht viel machen

    Spoiler anzeigen
    [autoit]

    $params = IniReadSection($s_iniFile,"templatevars")
    $anzahl = $params[0][0]

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

    ; Zeiger auf Excelfile
    $xlsfile = _ExcelBookOpen($s_addressfile, 0, False)
    $headerarray = _ExcelReadArray($xlsfile, 2, 1, 100, 0, 1)
    _ArrayDisplay($headerarray)

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

    ; HTML Template einlesen
    $htmlfile = FileRead($s_htmltemplate, FileGetSize($s_htmltemplate))

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

    for $n = 0 To ubound($headerarray) -1
    if $headerarray[$n][1] = $params[$n][0] then
    msgBox(0,"Gefunden","Wert: " & $headerarray[$n][1] & " an Pos: " & $n)
    EndIf
    Next
    _ArrayDisplay($params)

    [/autoit]

    mfg. Jam00

  • Kannst du evtl. einen Screenshot von diesem Teil machen:

    [autoit]

    _ArrayDisplay($headerarray)

    [/autoit]

    Ich weiss nicht was dort in deinem Array steht :)

    Lg, fabian

    • Offizieller Beitrag

    Dank an BugFix (King of the Array)

    Der Fehler lag daran, dass das Headermenü nur eindimensional ist. Damit konnte $headerarray[x][x] auch nicht gehen.

    Des Rätsels Lösung

    [autoit]

    params = IniReadSection($s_iniFile,"templatevars")
    $anzahl = $params[0][0]

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

    Redim $params[ubound($params)][3]

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

    _ArrayDisplay($params)

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

    ; Zeiger auf Excelfile
    $xlsfile = _ExcelBookOpen($s_addressfile, 0, False)
    $headerarray = _ExcelReadArray($xlsfile, 2, 1, 50, 0, 1)
    _ArrayDisplay($headerarray)

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

    ; HTML Template einlesen
    $htmlfile = FileRead($s_htmltemplate, FileGetSize($s_htmltemplate))

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

    for $n = 1 to $anzahl
    $index = _ArraySearch($headerarray, $params[$n][1], 1)
    if Not @error Then $params[$n][2] = $index
    Next

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

    _ArrayDisplay($params)

    [/autoit]