System.BlockRead

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

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;

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

Codebeispiele