System.BlockWrite

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure BlockWrite(var F: File; const Buf; Count: Integer); overload;
procedure BlockWrite(var F: File; const Buf; Count: Integer; var Result: Integer); overload;

Propriétés

Type Visibilité  Source Unité  Parent
procedure public System.pas System System


Description

Ecrit un ou plusieurs enregistrements d'une variable mémoire dans un fichier ouvert.

Avertissement : C'est une ancienne méthode qui est particulièrement dangereuse à utiliser en raison du paramètre non typé, conduisant à une corruption potentielle de la mémoire. La taille d'enregistrement utilisée par BlockWrite et BlockRead est gérée par le second paramètre facultatif des appels de Reset et Rewrite utilisés pour ouvrir le fichier écrit. Il est préférable d'utiliser les flux dans vos applications. Par exemple, une procédure utilisateur impliquant un flux peut utiliser TMemoryStreams ainsi que TFileStreams, au lieu d'être limité à l'utilisation des fichiers comme cela se produit avec ces anciennes routines.

F est une variable fichier non typée, Buf est une variable quelconque, Count est une expression de type Integer et Result est une variable facultative de type Integer.

BlockWrite écrit au moins Count enregistrements dans le fichier F depuis la mémoire, en partant du premier octet occupé par Buf. Le nombre réel d'enregistrements complets écrits (inférieur ou égal à Count) est renvoyé dans Result.

Le bloc entier transféré occupe au plus Count*RecSize octets. RecSize est la taille d'enregistrement spécifiée lors de l'ouverture du fichier (ou 128 si elle a été omise).

Si le bloc entier est transféré, Result est égal à Count au retour.

Si Result est inférieur à Count, le disque a été saturé avant la fin du transfert. Dans ce cas, si la taille d'enregistrement du fichier est supérieure à 1, Result renvoie le nombre d'enregistrements complets écrits.

BlockWrite avance la position en cours dans le fichier de Result enregistrements.

Si Result n'est pas spécifié, une erreur d'E/S se produit si le nombre d'enregistrements écrits n'est pas égal à Count. Si la directive {$I+} du compilateur est effective, les erreurs déclenchent une exception EInOutError.

Voir aussi

Exemples de code