Funktionreferenz


FileWriteLine

Beschreibung anzeigen in

Fügt eine Zeile Text an das Ende einer zuvor geöffneten Textdatei.

FileWriteLine ( "filehandle/filename", "line" )

Parameter

filehandle/filename Das Handle der Datei, wie es von einem früheren Aufruf von FileOpen() zurückgegeben wurde. Alternativ kann ein String mit dem Dateinamen als erster Parameter verwendet werden.
line Die Textzeile, die in die Datei geschrieben werden soll. Wenn die Zeile NICHT mit @CR oder @LF endet, dann wird automatisch ein MS-DOS-Zeilenvorschub (@CRLF) angefügt.

Rückgabewert

Erfolg: 1.
Fehler: 0 wenn die Datei nicht im writemode geöffnet ist, die Datei schreibgeschützt ist oder aus anderen Gründen nicht beschrieben werden konnte.

Bemerkungen

Die Datei muss im Schreibmodus (write mode) geöffnet sein, damit FileWriteLine() keinen Fehler hervorruft.

Wenn ein Dateiname statt eines Dateihandles angegeben wird, wird die Datei während des Funktionsaufrufes geöffnet und geschlossen. Wenn man große Textdateien bearbeitet, ist das natürlich viel langsamer als die Arbeit mit Handles. Die Datei wird erstellt, wenn sie noch nicht existiert.

Hinweis: Die Verwendung von Dateihandles und -namen sollte nicht vermischt werden. So sollte man z.B. vermeiden, eine Datei mit FileOpen() zu öffnen und dann in dieser Funktion einen Dateinamen verwenden. Es sind entweder Handles oder Dateinamen zu benutzen - nicht beides.

AutoIt schreibt Text standardmäßig mit UTF8 Kodierung (ohne BOM). Um in einer anderen Kodierung zu schreiben, muss die Datei mit FileOpen() unter Verwendung der notwendigen Flags geöffnet werden.

Der zu schreibende Text kann keine Chr(0) Zeichen enthalten, da die Ausgabe sonst beschnitten wird. FileWrite() mit einer Datei die im Binärmodus geöffnet wurde, kann solche Zeichen schreiben.

Mit der Funktion _FileWriteToLine kann man auch an einer ganz bestimmten Stelle in einer Datei schreiben (z. B. an den Anfang der Datei)

Verwandte Funktionen

FileFlush, FileGetPos, FileOpen, FileRead, FileReadLine, FileSetPos, FileWrite

Beispiel

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

Example()

Func Example()
    ; Erstellt eine Konstante im lokalen Bereich des Dateipfads der gelesen bzw. in den geschrieben werden soll.
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Erstellt eine temporäre Datei in die Daten geschrieben werden sollen.
    If Not FileWrite($sFilePath, "Start des FileWriteLine Beispiels, Zeile 1. " & @CRLF) Then
        MsgBox($MB_SYSTEMMODAL, "", "Es ist während des Schreibens der temporären Datei ein Fehler aufgetreten.")
        Return False
    EndIf

    ; Öffnet die Datei zum Lesen und speichert das Handle in einer Variable.
    Local $hFileOpen = FileOpen($sFilePath, $FO_APPEND)
    If $hFileOpen = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Es ist während des Lesens der Datei ein Fehler aufgetreten.")
        Return False
    EndIf

    ; Schreibt durch die Verwendung des von FileOpen zurückgegebenen Handles Daten in die Datei (hängt den Text an das Ende der Datei).
    FileWriteLine($hFileOpen, "Zeile 2")
    FileWriteLine($hFileOpen, "Dies ist mit Zeile 3 eine neue Zeile, da eine neue Zeile beim letzten Aufruf von FileWriteLines angehängt wurde." & @CRLF)
    FileWriteLine($hFileOpen, "Zeile 4" & @CRLF)
    FileWriteLine($hFileOpen, "Zeile 5")

    ; Schließt das Handle welches von FileOpen zurückgegeben wurde.
    FileClose($hFileOpen)

    ; Zeigt den Inhalt der Datei. Dabei wird der Dateipfad statt dem durch FileOpen zurückgegebenen Handle an FileRead übergeben.
    MsgBox($MB_SYSTEMMODAL, "", "Inhalt der Datei:" & @CRLF & FileRead($sFilePath))

    ; Löscht die temporären Datei.
    FileDelete($sFilePath)
EndFunc   ;==>Example