System.BlockRead
Delphi
function BlockRead(var F: File; var Buf; Count: Integer; [var Result: Integer]): Integer; overload;
function BlockRead(var F: File; var Buf; Count: Integer; [var Result: Integer]): Integer; overload;
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
function | public | System.pas | System | System |
Beschreibung
Liest einen oder mehrere Datensätze aus einer geöffneten Datei in eine Variable ein.
Warnung: Es gibt eine ältere Methode, deren Verwendung gefährlich ist, weil der untypisierte Parameter
Buf
zu Speicherfehlern führen kann. Die von BlockRead und BlockWrite verwendete Datensatzgröße wird durch den zweiten optionalen Parameter im Aufruf von Reset bzw. Rewrite gesteuert, mit dem die zu schreibende Datei geöffnet wurde. Sie sollten in Ihren Anwendungen besser Streams verwenden. Benutzerprozeduren mit Streams können beispielsweise sowohl TMemoryStreams als auch TFileStreams benutzen und sind nicht wie diese älteren Routinen auf Dateien beschränkt.
F
ist eine untypisierte Dateivariable, Buf
eine beliebige Variable, Count
ein Ausdruck vom Typ Integer und Result
eine optionale Variable vom Typ Integer.
BlockRead liest ab dem ersten von Buf
belegten Byte bis zu Count
Datensätze aus der Datei F
in den Arbeitsspeicher. Die tatsächliche Anzahl der vollständig gelesenen Datensätze (kleiner oder gleich Count
) wird in der Variable Result
zurückgegeben.
Der gesamte übertragene Block belegt höchstens Count
*RecSize Byte. RecSize ist die beim Öffnen der Datei angegebene Datensatzgröße (oder 128, wenn die Größe nicht angegeben wurde).
Wenn der gesamte Block übertragen wurde, ist Result
mit Count
identisch.
Wenn Result
kleiner als Count
ist, wurde vor Beendigung der Übertragung das Dateiende erreicht. Ist die Datensatzgröße der Datei größer als 1, gibt Result
die Anzahl der vollständig gelesenen Datensätze zurück.
Wird Result
nicht angegeben, tritt ein E/A-Fehler auf, wenn die Anzahl der gelesenen Datensätze nicht mit Count
identisch ist. Wenn die Compiler-Direktive {$I+} aktiv ist, lösen Fehler eine EInOutError-Exception aus.
Siehe auch
- BlockWrite
- Mit Streams Daten lesen und schreiben
- Klassen zum Lesen, Schreiben und für Streams
- Unterstützung der Dateiein- und -ausgabe
- Intrinsische Routinen in Delphi
- TFileStream
- TStreamReader
- TStreamWriter
- EInOutError
- Rewrite
- Reset
- AssignFile
- CloseFile