FileReadLine

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

FileReadLine, AusgabeVar, Dateiname, Zeilennummer

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.

Zeilennummer

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 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 gelesen werden, die bis zu 65534 Zeichen lang sind. 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).

Siehe auch

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

Beispiele

#1

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