Array Größe

  • Hallo,

    ich habe folgendes Arrayproblem:
    Die Arraygröße ist unbekannt. Habe gelesen, daß man das
    mit ReDIM erweitern kann.
    Komm nicht weiter...

    So, das Script mit bestimmter Arraygröße klappt

    Spoiler anzeigen
    [autoit]


    Global $aNewText[5] = [4, "Neuer Text 1", "Neuer Text 2", "Neuer Text 3", "Neuer Text 4"], $aRow[5]

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

    $hFile = FileOpen(@ScriptDir & "\ilse.txt", 0) ; Datei zum lesen öffnen
    If $hFile = -1 Then Exit MsgBox(0, "Fehler", "Konnte Datei nicht zum lesen öffnen.")
    $aRow[0] = FileReadLine($hFile)
    For $i = 1 To 4
    $aRow[$i] = FileReadLine($hFile)
    $aRow[$i] = StringRegExpReplace($aRow[$i], ".+?(\|.+)", $aNewText[$i] & "$1", 1)
    Next
    FileClose($hFile)

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

    $hFile = FileOpen(@ScriptDir & "\ilse.txt", 2) ; Datei zum schreiben öffnen
    If $hFile = -1 Then Exit MsgBox(0, "Fehler", "Konnte Datei nicht zum schreiben öffnen.")
    FileWriteLine($hFile, $aRow[0])
    For $i = 1 To 4
    FileWriteLine($hFile, $aRow[$i])
    Next
    FileClose($hFile)

    [/autoit]

    Die Textdatei sieht so aus

    Spoiler anzeigen


    ||||||
    Rex|89|155|34|0xFFEAE02D|0|Arial
    Lissi|224|209|21|0xFFBA0722|0|Arial
    Laurie|73|249|13|0xFF26EB21|0|Arial

    bis hierhin alles ok!

    Wenn nun die Textdatei eine unbestimmte Größe hat,
    z.B. 20 Zeilen muß ich dann mit ReDim arbeiten?
    Und da komm ich nicht weiter.
    Also: Der Text $aNewtext kommt aus einem anderen Feld.
    Das wäre egal, Diese Anzahl ist die gleiche wie die Namen der Textdatei.

    Mein Versuch das einzubauen hat nicht funktioniert

    Spoiler anzeigen
    [autoit]


    If $aRow[Ubound($aRow)-1] <> '' Then
    ReDim $aRow[Ubound($aRow)+1]
    EndIf

    [/autoit]

    Glaube nur der Loop müsste irgendwie neu dimensioniert werden,
    damit die Quell-Textdatei immer richtig gelesen wird.


    Liebe Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (15. August 2012 um 16:43)

  • Mit _ArrayAdd kannst du einen neuen Wert an bestehende Array anfügen.

    Ich würde es aber ganz anders machen. Einfach erstmal die Textdatei mit _FileReadToArray in den Array einlesen und erst dann RegExp drüber.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.