File-Objekt

class File extends Object

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.

"FileObj" wird hier stellvertretend für ein beliebiges File-Objekt verwendet, da "File" die Klasse selbst ist.

Zusätzlich zu den von Object geerbten Methoden und Eigenschaften haben File-Objekte die folgenden vordefinierten Methoden und Eigenschaften.

Inhaltsverzeichnis

Methoden

Read

Liest eine Zeichenkette aus der Datei und rückt den Dateizeiger vor.

Zkette := FileObj.Read(ZeichenAnzahl)

Parameter

ZeichenAnzahl

Typ: Integer

Wenn weggelassen, wird der Rest der Datei gelesen und als einzelne Zeichenkette zurückgegeben. Andernfalls geben Sie die maximale Anzahl der zu lesenden Zeichen an. Wenn das File-Objekt von einem Handle erzeugt wurde, das auf ein nicht-suchendes Device wie Konsolenpuffer oder Pipe verweist, kann das Weglassen dieses Parameters dazu führen, dass die Methode fehlschlägt oder nur die aktuell verfügbaren Daten zurückgibt.

Rückgabewert

Typ: Zeichenkette

Diese Methode gibt die gelesene Zeichenkette zurück.

Write

Schreibt eine Zeichenkette in die Datei und rückt den Dateizeiger vor.

ByesGeschrieben := FileObj.Write(Zkette)

Parameter

Zkette

Typ: Zeichenkette

Die zu schreibende Zeichenkette.

Rückgabewert

Typ: Integer

Diese Methode gibt die Anzahl der geschriebenen Bytes (nicht Zeichen) zurück.

ReadLine

Liest eine Textzeile aus der Datei und rückt den Dateizeiger vor.

TextZeile := FileObj.ReadLine()

Rückgabewert

Typ: Zeichenkette

Diese Methode gibt eine Textzeile ohne Zeilenende zurück.

Bemerkungen

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.

WriteLine

Schreibt eine Textzeile in die Datei und rückt den Dateizeiger vor.

ByesGeschrieben := FileObj.WriteLine(Zkette)

Parameter

Zkette

Typ: Zeichenkette

Wenn leer oder weggelassen, wird eine leere Zeile geschrieben. Andernfalls geben Sie die zu schreibende Zeichenkette an, die immer mit `n oder `r`n endet, abhängig von den Zeilenumbruch-Flags, die zum Öffnen der Datei verwendet wurden.

Rückgabewert

Typ: Integer

Diese Methode gibt die Anzahl der geschriebenen Bytes (nicht Zeichen) zurück.

ReadZahlTyp

Liest eine Zahl aus der Datei und rückt den Dateizeiger vor.

Zahl := FileObj.ReadZahlTyp()

ZahlTyp ist entweder UInt, Int, Int64, Short, UShort, Char, UChar, Double oder Float. Diese Typnamen haben die gleiche Bedeutung wie bei DllCall.

Rückgabewert

Typ: Integer, Float oder Zeichenkette (leer)

Bei Erfolg gibt diese Methode eine Zahl zurück. Bei Misserfolg gibt sie eine leere Zeichenkette zurück.

Bemerkungen

Wenn die Anzahl der gelesenen Bytes ungleich 0, aber kleiner als die Größe von ZahlTyp ist, werden die fehlenden Bytes als 0 vermutet.

WriteZahlTyp

Schreibt eine Zahl in die Datei und rückt den Dateizeiger vor.

ByesGeschrieben := FileObj.WriteZahlTyp(Zahl)

ZahlTyp ist entweder UInt, Int, Int64, Short, UShort, Char, UChar, Double oder Float. Diese Typnamen haben die gleiche Bedeutung wie bei DllCall.

Parameter

Zahl

Typ: Integer oder Float

Die zu schreibende Zahl.

Rückgabewert

Typ: Integer

Diese Methode gibt die Anzahl der geschriebenen Bytes zurück. Zum Beispiel gibt FileObj.WriteUInt(42) bei Erfolg 4 zurück.

RawRead

Liest rohe Binärdaten aus der Datei in den Speicher und rückt den Dateizeiger vor.

BytesGelesen := FileObj.RawRead(Puffer , Bytes)

Parameter

Puffer

Typ: Objekt oder Integer

Ein Buffer-ähnliches Objekt oder eine Speicheradresse, die die Daten empfängt.

Es wird empfohlen, ein Buffer zu verwenden. Wenn Bytes weggelassen wird, wird standardmäßig die Größe des Pufferspeichers verwendet. Es wird eine Ausnahme ausgelöst, wenn Bytes die Größe des Pufferspeichers überschreitet.

Wenn eine Speicheradresse übergeben wird, muss auch Bytes angegeben werden.

Bytes

Typ: Integer

Die maximale Anzahl der Bytes, die gelesen werden sollen. Dies ist optional, wenn Puffer ein Objekt ist, andernfalls muss es angegeben werden.

Rückgabewert

Typ: Integer

Diese Methode gibt die Anzahl der gelesenen Bytes zurück.

RawWrite

Schreibt rohe Binärdaten in die Datei und rückt den Dateizeiger vor.

ByesGeschrieben := FileObj.RawWrite(Daten , Bytes)

Parameter

Daten

Typ: Objekt, Zeichenkette oder Integer

Ein Buffer-ähnliches Objekt, eine Zeichenkette mit binären Daten oder eine Speicheradresse. Wenn ein Objekt oder eine Zeichenkette angegeben ist, ist Bytes optional und verwendet standardmäßig die Größe des Pufferspeichers oder der Zeichenkette. Andernfalls muss auch Bytes angegeben werden.

Bytes

Typ: Integer

Die maximale Anzahl der Bytes, die geschrieben werden sollen. Dies ist optional, wenn Daten ein Objekt oder eine Zeichenkette ist, andernfalls muss es angegeben werden.

Rückgabewert

Typ: Integer

Diese Methode gibt die Anzahl der geschriebenen Bytes zurück.

Seek

Verschiebt den Dateizeiger.

Verschoben := FileObj.Seek(Distanz , Startpunkt)

Parameter

Distanz

Typ: Integer

Die Anzahl der Bytes, um die verschoben werden soll. Je kleiner der Wert, desto näher befindet sich der Dateizeiger am Anfang der Datei.

Startpunkt

Typ: Integer

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.

  • 0 (SEEK_SET): Anfang der Datei. Distanz muss 0 oder größer sein.
  • 1 (SEEK_CUR): Aktuelle Position des Dateizeigers.
  • 2 (SEEK_END): Ende der Datei. Distanz sollte normalerweise negativ sein.

Rückgabewert

Typ: Integer (boolesch)

Bei Erfolg gibt diese Methode 1 (true) zurück. Bei Misserfolg gibt sie 0 (false) zurück.

Bemerkungen

Diese Methode ist äquivalent zu FileObj.Pos := Distanz, wenn Distanz nicht negativ ist und Startpunkt weggelassen wird oder 0 (SEEK_SET) ist.

Close

Schließt die Datei, entleert alle Daten im Cache auf die Festplatte und hebt Freigabesperren auf.

FileObj.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.

Eigenschaften

Pos

Ermittelt oder setzt die Position des Dateizeigers.

AktuellePos := FileObj.Pos
FileObj.Pos := 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 FileObj.Seek(NeuePos).

Length

Ermittelt oder setzt die Größe der Datei.

AktuelleGröße := FileObj.Length
FileObj.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.

AtEOF

Ermittelt eine Zahl ungleich 0, wenn der Dateizeiger das Ende der Datei erreicht hat, andernfalls 0.

AmEndeDerDatei := FileObj.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.

Encoding

Ermittelt oder setzt die Textkodierung des File-Objekts.

AktuelleKodierung := FileObj.Encoding
FileObj.Encoding := NeueKodierung

NeueKodierung kann ein numerischer Codepageidentifikator (siehe Microsoft Docs) oder eine der folgenden Zeichenketten sein.

AktuelleKodierung ist eine der folgenden Zeichenketten:

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.

Das Setzen von NeueKodierung auf UTF-8-RAW oder UTF-16-RAW ist erlaubt, aber das Suffix -RAW wird ignoriert. Dies gilt nur für FileObj.Encoding, nicht für FileOpen.

Handle

Gibt ein System-Datei-Handle zurück, das für DllCall verwendet werden kann. Siehe CreateFile.

Handle := FileObj.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.