Funktionsreferenz

FileReadLine

Liest eine Textzeile aus einer zuvor geöffneten Textdatei.

FileReadLine ( "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 [optional] Die Zeilennummer, die gelesen werden soll. Die erste Zeile einer Textdatei hat die Nummer 1 (nicht 0). Die letzte Zeile ist -1.

 

Rückgabewert

Erfolg: Gibt eine Textzeile zurück.
Spezial: Setzt @error auf -1, wenn das Dateiende erreicht wurde.
Fehler: Setzt @error auf 1, wenn die Datei nicht im Lesemodus (read mode) geöffnet wurde oder ein anderer Fehler aufgetreten ist.

 

Bemerkungen

Gibt eine Textzeile zurück. Die am Zeilenende eingelesenen Zeilenumbrüche (CHR(10) oder @LF) werden automatisch entfernt.
Wenn keine Zeilennummer zum Lesen angegeben wurde, wird die "nächste" Zeile eingelesen (die "nächste" bedeutet bei einer neu geöffneten Datei die erste Zeile).
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 Textdateien ist das viel langsamer als die Arbeit mit Handles.
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.

In Hinblick auf Geschwindigkeit ist es keine gute Idee, eine Datei zeilenweise einzulesen, indem der line-Parameter jeweils um 1 erhöht wird. Dadurch ist AutoIt gezwungen, die Datei jedesmal neu vom Beginn bis zur angegebenen Zeile einzulesen.

Sowohl ANSI als auch UTF16/UTF8 formatierte Texte können gelesen werden - AutoIt erkennt den Typ automatisch.

 

Verwandte Funktionen

IniRead, FileOpen, FileRead, FileWrite, FileWriteLine, FileSetPos, FileGetPos

 

Beispiel


$file = FileOpen("test.txt", 0)

; Prüfen, ob Datei eingelesen wurde
If $file = -1 Then
    MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
EndIf

; Zeilen des Textes einlesen bis EOF
While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Zeile gelesen:", $line)
Wend

FileClose($file)