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