System.BlockWrite
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;
Inhaltsverzeichnis
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.