FileReadLine

Liest eine bestimme Zeile aus einer Datei und speichert den Text in eine Variable.

FileReadLine, AusgabeVar, Dateiname, ZeileNummer

Parameter

AusgabeVar

Name der Variable, in der der ermittelte Text gespeichert werden soll.

Dateiname

Name der Datei, auf die zugegriffen werden soll. Wenn kein absoluter Pfad angegeben ist, wird die Datei im A_WorkingDir-Verzeichnis vermutet. Windows- und Unix-Formate werden unterstützt; das heißt, dass die Zeilen einer Datei entweder mit einem CR-LF-Paar (`r`n) oder LF-Zeichen (`n) enden können.

ZeileNummer

Welche Zeile gelesen werden soll (1 ist die erste Zeile, 2 die zweite und so weiter). Dieser Parameter kann ein Ausdruck sein.

Ist die angegebene Zeilennummer größer als die Anzahl der Zeilen in der Datei, wird ErrorLevel auf 1 gesetzt und der bisherige Inhalt von AusgabeVar beibehalten. Das geschieht auch, wenn die Zeile auf der angegebenen Zeilennummer die letzte Zeile ist, leer ist und nicht mit einem Zeilenumbruch/CRLF endet.

Fehlerbehandlung

[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.

Bei Erfolg wird ErrorLevel auf 0 gesetzt. Ansonsten wird ErrorLevel auf 1 gesetzt und der bisherige Inhalt von AusgabeVar beibehalten.

A_LastError wird auf das Ergebnis der Systemfunktion GetLastError() gesetzt.

Bemerkungen

Es wird dringend empfohlen, diesen Befehl nur für kleine Dateien zu verwenden oder wenn nur eine einzige Textzeile benötigt wird. Eine Datei-lesende Schleife ist leistungsfähiger als FileReadLine, wenn es darum geht, eine große Anzahl von Zeilen nacheinander einzulesen und zu verarbeiten. Mit FileRead kann eine komplette Datei in eine Variable eingelesen werden.

Alle Leerraumzeichen am Anfang und Ende der Zeile, wie z. B. Tabulator- und Leerzeichen, außer LF-Zeichen (`n), werden in AusgabeVar geschrieben. Leer- und Tabulatorzeichen können an beiden Enden einer Variable via Selbstzuweisung entfernt werden, während AutoTrim aktiv ist (Standardeinstellung). Zum Beispiel: MeineZeile = %MeineZeile%.

Es können Zeilen mit einer Länge von bis zu 65534 Zeichen gelesen werden. Wenn die Länge einer Zeile dieses Limit überschreitet, können die restlichen Zeichen nicht mit diesem Befehl abgerufen werden (verwenden Sie stattdessen FileRead oder eine Datei-lesende Schleife).

FileOpen()/File.ReadLine(), FileRead, FileAppend, Datei-lesende Schleife, IniRead

Beispiele

Liest eine Textdatei Zeile für Zeile. Beachten Sie, dass das gleiche (aber mit besserer Leistung) erzielt werden kann, wenn Sie eine Datei-lesende Schleife verwenden.

Loop
{
    FileReadLine, Zeile, C:\Meine Dokumente\Kontaktliste.txt, %A_Index%
    if ErrorLevel
        break
    MsgBox, 4, , Zeile #%A_Index% ist "%Zeile%".  Weiter?
    IfMsgBox, No
        return
}
MsgBox, Das Ende der Datei wurde erreicht oder es ist ein Problem aufgetreten.
return