FileReadLine

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

FileReadLine, AusgabeVar, DateiName, ZeileNummer

Parameter

AusgabeVar

Name der Ausgabevariable, in der der abgerufene 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, d.h. die Zeilen der Datei können entweder mit einem CR-LF-Paar (`r`n) oder einem LF-Zeichen (`n) enden.

ZeileNummer

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

Wenn die angegebene Zeilennummer größer als die Anzahl der Zeilen in der Datei ist, wird ErrorLevel auf 1 gesetzt und der bisherige Inhalt von AusgabeVar beibehalten. Dies geschieht auch, wenn die angegebene Zeilennummer die letzte Zeile ist, diese Zeile aber 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. Andernfalls wird ErrorLevel auf 1 gesetzt und der bisherige Inhalt von AusgabeVar beibehalten.

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

Bemerkungen

Dieser Befehl sollte nur verwendet werden, wenn die Datei klein ist oder wenn nur eine einzelne Textzeile benötigt wird. Eine dateilesende Schleife ist performanter als FileReadLine, wenn es darum geht, eine große Anzahl von Zeilen einzeln zu lesen und zu verarbeiten. Mit FileRead kann eine komplette Datei in eine Variable eingelesen werden.

Leer- und Tabulatorzeichen am Anfang und Ende der Zeile werden in die AusgabeVar geschrieben, nicht aber das LF-Zeichen (`n) am Ende der Zeile. Um Leer- und Tabulatorzeichen an beiden Enden einer Variable zu entfernen, machen Sie eine Selbstzuweisung, 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 dateilesende Schleife).

FileOpen()/File.ReadLine(), FileRead, FileAppend, dateilesende Schleife, IniRead

Beispiele

Liest eine Textdatei zeilenweise ein. Beachten Sie, dass Sie dasselbe (aber performanter) mit einer dateilesenden Schleife erreichen können.

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