Funktionreferenz


FileWrite

Beschreibung anzeigen in

Schreibt Text/Daten an das Ende einer zuvor geöffneten Textdatei.

FileWrite ( "filehandle/filename", "text/data" )

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.
text/data Der Text/Die Daten, die in die Datei geschrieben werden soll(en). Die Zeile wird so wie sie ist in die Datei geschrieben. Es wird kein @CR oder @LF angehängt. Siehe Bemerkungen für die Datentypen.

Rückgabewert

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

Bemerkungen

Die Datei muss im Schreibmodus (write mode) geöffnet sein, damit FileWrite() 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.

Wenn die Daten ein binärer Datentyp (und kein Text) sind, wird byteweise in die Datei geschrieben. Der Binärmode kann auch durch Aufruf von FileOpen() mit dem Binärmode Flag erzwungen werden.

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

Binary, FileFlush, FileGetPos, FileOpen, FileRead, FileReadLine, FileSetPos, FileWriteLine

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 FileWrite 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).
    FileWrite($hFileOpen, "Zeile 2")
    FileWrite($hFileOpen, "Dies bleibt in Zeile 2, da beim letzten Aufruf von FileWrite keine neue Zeile angehängt wurde.." & @CRLF)
    FileWrite($hFileOpen, "Zeile 3" & @CRLF)
    FileWrite($hFileOpen, "Zeile 4")

    ; 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