System.BlockWrite

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function BlockWrite(var F: File; const Buf; Count: Integer; [var Result: Integer]): Integer; overload;
function BlockWrite(var F: File; const Buf; Count: Integer; [var Result: Integer]): Integer; overload;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public System.pas System System


Beschreibung

Schreibt einen oder mehrere Datensätze aus einer Variable in eine geöffnete Datei.

Warnung: Es gibt eine ältere Methode, deren Verwendung gefährlich ist, weil der untypisierte Parameter Buf zu Speicherfehlern führen kann. Die von BlockWrite und BlockRead 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.

BlockWrite schreibt ab dem ersten von Buf belegten Byte bis zu Count Datensätze aus dem Arbeitsspeicher in die Datei F. Die tatsächliche Anzahl der vollständig geschriebenen 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, war auf dem Speichermedium vor Beendigung der Übertragung kein Platz mehr verfügbar. In diesem Fall und wenn die Datensatzgröße der Datei größer als 1 ist, gibt Result die Anzahl der vollständig geschriebenen Datensätze zurück.

BlockWrite rückt die aktuelle Dateiposition um Result Datensätze vor.

Wird Result nicht angegeben, tritt ein E/A-Fehler auf, wenn die Anzahl der geschriebenen Datensätze nicht mit Count identisch ist. Wenn die Compiler-Direktive {$I+} aktiv ist, lösen Fehler eine EInOutError-Exception aus.

Siehe auch

Codebeispiele