Funktionreferenz


FileRead

Beschreibung anzeigen in

Liest eine bestimmte Anzahl von Zeichen aus einer zuvor geöffneten Datei.

FileRead ( "filehandle/filename" [, count] )

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.
count [optional] Die Anzahl der einzulesenden Zeichen - siehe Bemerkungen.

Rückgabewert

Erfolg: Die eingelesenen Zeichen. @extended wird auf die Anzahl der zurückgegebenen Bytes/Zeichen gesetzt.
Fehler: Setzt das @error Flag auf ungleich null.
@error: 1 = Die Datei wurde nicht im Lesemodus geöffnet oder anderer Fehler.
-1 = Das Dateiende wurde erreicht

Bemerkungen

Eine negative oder nicht definierte Anzahl der einzulesenen Zeichen liest die ganze Datei von der aktuellen Position ab.

Wenn ein Dateiname statt eines Dateihandles angegeben wird, wird die Datei während des Funktionsaufrufes geöffnet und geschlossen. Für die Bearbeitung großer Dateien ist das viel langsamer als die Arbeit mit Handles.
Hinweis: Nicht die Verwendung von Dateihandles und -namen vermischen. So soll man zum Beispiel nicht eine Datei mit FileOpen() öffnen und dann in dieser Funktion einen Dateinamen verwenden. Entweder Handles oder Dateinamen benutzen - nicht beides!

Sowohl ANSI als auch UTF16/UTF8 Formate können gelesen werden - Siehe FileOpen() für Details.
Wenn die UTF8-Konvertierung in eine Zeichenkette nicht durchgeführt werden kann, wird das ANSI-Textformat angenommen. Dies kann bei einer sehr großen Anzahl von gelesenen Zeichen vorkommen.

Eine Datei kann binär (byteweise) ausgelesen werden wenn FileOpen() mit dem Binärflag aufgerufen wird. In diesem Fall gibt count die Anzahl der Bytes an, nicht die der Zeichen.
Ein zu großer Wert für Anzahl kann dazu führen, dass AutoIt mit einem Speicherzugriffsfehler beendet wird.

Verwandte Funktionen

FileGetPos, FileOpen, FileReadLine, FileSetPos, FileWrite, FileWriteLine, String

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 von der Dateien gelesen werden sollen.
    If Not FileWrite($sFilePath, "Dies ist ein Beispiel für die Verwendung von FileRead.") 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_READ)
    If $hFileOpen = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Es ist während des Lesens der Datei ein Fehler aufgetreten.")
        Return False
    EndIf

    ; Liest den Inhalt der Datei durch die Verwendung des durch FileOpen zurückgegebenen Handles.
    Local $sFileRead = FileRead($hFileOpen)

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

    ; Zeigt den Inhalt der Datei.
    MsgBox($MB_SYSTEMMODAL, "", "Inhalt der Datei:" & @CRLF & $sFileRead)

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