Bietet eine Schnittstelle für die Datei-Ein-/Ausgabe, z.B. das Lesen oder Schreiben von Text oder das Abrufen seiner Länge. FileOpen() gibt ein Objekt dieses Typs zurück.
Liest eine Zeichenkette aus der Datei und rückt den Dateizeiger vor.
Zkette := File.Read(ZeichenAnzahl)
Diese Methode gibt die gelesene Zeichenkette zurück.
Schreibt eine Zeichenkette in die Datei und rückt den Dateizeiger vor.
ByesGeschrieben := File.Write(Zkette)
Diese Methode gibt die Anzahl der geschriebenen Bytes (nicht Zeichen) zurück.
Liest eine Textzeile aus der Datei und rückt den Dateizeiger vor.
TextZeile := File.ReadLine()
Diese Methode gibt eine Textzeile zurück. Die Textzeile kann `n
, `r`n
oder `r
enthalten, abhängig von der Datei und den Zeilenumbruch-Flags, die zum Öffnen der Datei verwendet wurden.
Es können Zeilen mit einer Länge von bis zu 65534 Zeichen gelesen werden. Wenn eine Zeile diese Länge überschreitet, wird der Rest der Zeile durch nachfolgende Aufrufe dieser Methode zurückgegeben.
Schreibt eine Textzeile in die Datei und rückt den Dateizeiger vor.
ByesGeschrieben := File.WriteLine(Zkette)
`n
oder `r`n
endet, abhängig von den Zeilenumbruch-Flags, die zum Öffnen der Datei verwendet wurden.Diese Methode gibt die Anzahl der geschriebenen Bytes (nicht Zeichen) zurück.
Liest eine Zahl aus der Datei und rückt den Dateizeiger vor.
Zahl := File.ReadZahlTyp()
ZahlTyp ist entweder UInt, Int, Int64, Short, UShort, Char, UChar, Double oder Float. Diese Typnamen haben die gleiche Bedeutung wie bei DllCall().
Bei Erfolg gibt diese Methode eine Zahl zurück. Bei Misserfolg gibt sie eine leere Zeichenkette zurück.
Wenn eine Try-Anweisung aktiv ist und keine Bytes gelesen wurden, wird eine Ausnahme ausgelöst. Es wird keine Ausnahme ausgelöst, wenn mindestens ein Byte gelesen wurde, selbst wenn die Größe von ZahlTyp größer als die Anzahl der gelesenen Bytes ist. Stattdessen werden die fehlenden Bytes als Null behandelt.
Schreibt eine Zahl in die Datei und rückt den Dateizeiger vor.
ByesGeschrieben := File.WriteZahlTyp(Zahl)
ZahlTyp ist entweder UInt, Int, Int64, Short, UShort, Char, UChar, Double oder Float. Diese Typnamen haben die gleiche Bedeutung wie bei DllCall().
Diese Methode gibt die Anzahl der geschriebenen Bytes zurück. Zum Beispiel gibt File.WriteUInt(42)
bei Erfolg 4 zurück.
Liest rohe Binärdaten aus der Datei in den Speicher und rückt den Dateizeiger vor.
BytesGelesen := File.RawRead(VarOderAdresse, Bytes)
Diese Methode gibt die Anzahl der gelesenen Bytes zurück.
Wenn eine Try-Anweisung aktiv ist und Bytes ungleich 0 ist, aber keine Bytes gelesen wurden, wird eine Ausnahme ausgelöst. Dies lässt sich mit der AtEOF-Eigenschaft vermeiden, falls nötig.
Schreibt rohe Binärdaten in die Datei und rückt den Dateizeiger vor.
ByesGeschrieben := File.RawWrite(VarOderAdresse, Bytes)
Diese Methode gibt die Anzahl der geschriebenen Bytes zurück.
Verschiebt den Dateizeiger.
Verschoben := File.Seek(Distanz , Startpunkt)
Wenn weggelassen, wird standardmäßig 2 verwendet, wenn Distanz negativ ist, andernfalls 0. Andernfalls geben Sie eine der folgenden Zahlen an, um den Startpunkt festzulegen, von dem aus der Dateizeiger verschoben werden soll.
Bei Erfolg gibt diese Methode 1 (true) zurück. Bei Misserfolg gibt sie 0 (false) zurück.
Diese Methode ist äquivalent zu File.Pos := Distanz
und File.Position := Distanz
, wenn Distanz nicht negativ ist und Startpunkt weggelassen wird oder 0 (SEEK_SET) ist.
Gibt die aktuelle Position des Dateizeigers zurück, wobei 0 der Anfang der Datei ist.
AktuellePos := File.Tell()
Diese Methode ist äquivalent zu AktuellePos := File.Pos
und AktuellePos := File.Position
.
Schließt die Datei, entleert alle Daten im Cache auf die Festplatte und hebt Freigabesperren auf.
File.Close()
Obwohl die Datei beim Freigeben des Objekts automatisch geschlossen wird, ist es ratsam, die Datei so früh wie möglich zu schließen.
Ermittelt oder setzt die Position des Dateizeigers.
AktuellePos := File.Pos AktuellePos := File.Position
File.Pos := NeuePos File.Position := NeuePos
AktuellePos und NeuePos sind ein Offset vom Anfang der Datei (in Bytes), wobei 0 das erste Byte ist. Wenn Daten in die Datei geschrieben oder aus ihr gelesen werden, verschiebt sich der Dateizeiger automatisch auf das nächste Byte hinter diesen Daten.
Diese Eigenschaft ist äquivalent zu AktuellePos := File.Tell()
und File.Seek(NeuePos)
.
Ermittelt oder setzt die Größe der Datei.
AktuelleGröße := File.Length
File.Length := NeueGröße
AktuelleGröße und NeueGröße sind die Größe der Datei in Bytes.
Diese Eigenschaft sollte nur mit einer echten Datei verwendet werden. Wenn das File-Objekt von einem Handle erzeugt wurde, das auf ein Pipe verweist, kann Length die Menge der Daten zurückgeben, die gerade im internen Pufferspeicher des Pipe verfügbar sind, aber dieses Verhalten ist nicht garantiert.
Ermittelt eine Zahl ungleich 0, wenn der Dateizeiger das Ende der Datei erreicht hat.
AmEndeDerDatei := File.AtEOF
Diese Eigenschaft sollte nur mit einer echten Datei verwendet werden. Wenn das File-Objekt von einem Handle erzeugt wurde, das auf ein nicht-suchendes Device wie Konsolenpuffer oder Pipe verweist, kann der Rückgabewert bedeutungslos sein, da solche Devices logischerweise kein "End of File" haben.
Ermittelt oder setzt die Textkodierung des File-Objekts.
AktuelleKodierung := File.Encoding
File.Encoding := NeueKodierung
AktuelleKodierung und NeueKodierung sind ein numerischer Codepageidentifikator (siehe Microsoft Docs) oder eine der folgenden Zeichenketten:
UTF-8
: Unicode UTF-8, äquivalent zu CP65001.UTF-16
: Unicode UTF-16 mit Little-Endian-Byte-Order, äquivalent zu CP1200.CPnnn
: Eine Codepage mit dem numerischen Identifikator nnn.AktuelleKodierung kann nie ein Wert mit dem Suffix -RAW
sein, unabhängig davon, wie die Datei geöffnet wurde oder ob sie eine Byte-Order-Markierung (BOM) enthält. NeueKodierung bewirkt nicht, dass eine BOM hinzugefügt oder entfernt wird, da eine BOM normalerweise beim Erstellen der Datei hinzugefügt wird.
[v1.1.15.04+]: Das Setzen von NeueKodierung auf UTF-8-RAW
oder UTF-16-RAW
ist erlaubt, aber das Suffix -RAW
wird ignoriert. In älteren Versionen verhielten sich UTF-8-RAW
und UTF-16-RAW
wie eine ungültige 8-Bit-Kodierung, wodurch alle ASCII-fremden Zeichen verworfen wurden. Dies gilt nur für File.Encoding
, nicht für FileOpen().
Ermittelt ein System-Datei-Handle, das für DllCall() verwendet werden kann. Siehe CreateFile.
Handle := File.Handle ; Benötigt [v1.1.35+] Handle := File.__Handle
File-Objekte puffern intern Lese- und Schreibvorgänge. Daten, die in den internen Pufferspeicher des Objekts geschrieben wurden, werden auf die Festplatte übertragen, bevor das Handle zurückgegeben wird. Enthält der Pufferspeicher Daten, die aus einer Datei gelesen wurden, werden diese verworfen und der Dateizeiger auf die logische Position (widergespiegelt durch die Pos-Eigenschaft) zurückgesetzt.