Array mit mehr als 4096 Zeichen auf einer Zeile?

  • Hallo,

    Kann mir jmd. sagen, wie ich ein Array initialisiere, daß mehr als 4097 Zeichen hat? Da AutoIT auf 4096 Zeichen pro Codezeile beschränkt ist, suche ich nach einer Möglichkeit, wie ich ich den Zeilenumbruch gestalten soll.


    Ich habe versucht:

    DIM $array = [1,2,3,4,5..4000 \n 4001..5000]

    aber das klappt natürlich nicht. _ArrayConcatenate() würde ich gerne vermeiden. Und _ArrayAdd ebenfalls, da die Elemente der Liste aus einer Datei ausgelesen und dann mittels Transposition transformiert werden.


    Danke und Gruß

    mugh

  • [autoit]

    Dim $array[1]
    $array[0] = "blablabla"
    $array[0] &= "blablabla"

    [/autoit]

    gruß jendrik

    • Offizieller Beitrag

    Na, das geht eh nicht ( DIM $array = [1,2,3,4,5..4000 \n 4001..5000] ), da fehlt die Größenangabe bei der Arraydeklaration.
    Also: Dim $array[groesse] = [....]
    Probier mal folgendes:

    [autoit]

    Global $Array[6000]
    Global $TeilArray1[2000] = [....]
    Global $TeilArray2[2000] = [....]
    Global $TeilArray3[2000] = [....] ; usw.
    Global $k = 0
    For $i = 0 To UBound($TeilArray1) -1
    $Array[$k] = $TeilArray1[$i]
    $k += 1
    Next
    For $i = 0 To UBound($TeilArray2) -1
    $Array[$k] = $TeilArray2[$i]
    $k += 1
    Next
    For $i = 0 To UBound($TeilArray3) -1
    $Array[$k] = $TeilArray3[$i]
    $k += 1
    Next

    [/autoit]
  • Hallo Bugfix,


    danke für Deine Antwort. Und recht herzlichen Dank für Dein Tutorial, daß ich natürlich vorher entdeckt und gelesen habe. Mein Beispiel sollte nicht funktionieren, sondern nur die Lage verdeutlichen. Ist es tatsächlich notwendig, Programmkontrollstrukturen zu verwenden, um zwei oder mehr Zeilen von Array-Elementen zu verbinden? Geht daß nicht, wie aus anderen Sprachen bekannt, mit \n oder ähnlichem? Das Beispiel von Jendrik war ja wohl nicht ernst gemeint.


    Sorry, wenn ich ungläubig bin ;)


    Gruß

    mugh

    • Offizieller Beitrag

    Geht daß nicht, wie aus anderen Sprachen bekannt, mit \n oder ähnlichem?


    Ich kenne da leider nicht die Möglichkeiten in anderen Sprachen.
    Also du möchtest ein Array deklarieren und die Werte zuweisen in einem Schritt ( Dim $ar[2] = [1,2] ) aber es sind soviel Werte, dass die maximal zulässige Länge einer Programmcodezeile überschritten wird. Du hattest ja schon getestet und festgestellt, dass ein Programmzeilenumbruch nur optischer Natur ist und die Zeilenlänge trotzdem für eine Zeile zählt.
    Ad hoc fällt mir kein anderer Weg, außer der in meinem Bsp., ein. Aber vielleicht kannst du ja mal schildern, wie das in anderen Sprachen gelöst ist. Evtl. gelingt es mir ja eine adäquate Funktion zu erstellen :D .