_FileWriteFromArray liefert keinen Eintrag

  • Hallo

    was mache ich hier nur falsch?
    Kurze Info:

    • Ich lese einen Text (mehrere Zeilen) in mein Array
    • Ich schreibe mit FileWritefromArray bestimmte Zeilen in eine neue Datei (das klappt nicht)

    Mein Code:

    [autoit]


    #include <file.au3>
    Dim $aRecords
    $sFile = @ScriptDir & "\Test.txt" ; das ist die neue Datei in die geschrieben wird!
    If Not _FileReadToArray("MeinText.txt", $aRecords) Then ; Mein Text der gelesen wird! Mehrere Zeilen...
    MsgBox(4096, "Fehler", "Fehler beim Einlesen der Datei in das Array!" & @CRLF & "Fehlercode: " & @error)
    Exit
    EndIf

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

    For $x = 1 To $aRecords[0] ; zeilenweise Loop
    MsgBox(0, 'Datensatz ' & $x & ':', $aRecords[$x]); hier lasse ich alle Zeilen anzeigen!
    if $x = "3" then ; Wenn die 3. Zeile erreicht ist...
    MsgBox(0,$aRecords[3],"3.Zeile wird geschrieben"); dann schreibe nur diese Zeile in die Datei!
    _FileWriteFromArray($sFile, $aRecords[3], 1); hier passiert nichts!
    endif
    if $x = "5" then ; Wenn die 5. Zeile erreicht ist...
    MsgBox(0,$aRecords[5],"5.Zeile wird geschrieben"); dann schreibe nur diese Zeile in die Datei!
    _FileWriteFromArray($sFile, $aRecords[5], 1); hier passiert nichts!
    endif
    Next

    [/autoit]

    Ich komme einfach nicht mehr weiter!

    Liebe Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (13. April 2011 um 14:12)

  • warum nicht so??

    [autoit]


    #include <file.au3>

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

    $sFile = @ScriptDir & "\Test.txt" ; das ist die neue Datei in die geschrieben wird!

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

    Dim $aRecords
    If Not _FileReadToArray("test.txt",$aRecords) Then
    MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf

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

    For $x = 1 To $aRecords[0] ; zeilenweise Loop
    if $x = "3" then ; Wenn die 3. Zeile erreicht ist...
    FileWriteLine($sFile, $aRecords[$x])
    endif
    if $x = "5" then ; Wenn die 5. Zeile erreicht ist...
    FileWriteLine($sFile, $aRecords[$x])
    endif
    Next

    [/autoit]
  • Hallo Gianni,

    dank dir, aber du benutzt filewriteLine!

    ich habe es jetzt hinbekommen
    _FileWriteFromArray($sFile, $aRecords,3,3);
    Hier lag der Fehler
    warum man das nicht so schreiben kann $aRecords[3] keine Ahnung!

    Viele Grüße
    Ilse ;)

  • Weil man filewriefromarray nicht zum Zeilenweise schreiben verwendet sondern um ein komplettes Array zu schreiben. Du kannst zwar auch den Start und Endindex angeben um nur eine oder mehrere bestimmte Zeilen zu schreiben aber obs Sinn macht? Siehe Beispiel in deinen anderen Thread...