System.BlockRead

De RAD Studio API Documentation
Aller à : navigation, rechercher

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;

Propriétés

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


Description

Lit un ou plusieurs enregistrements d'un fichier ouvert et les place dans une variable.

Avertissement : C'est une ancienne méthode qui est particulièrement dangereuse à utiliser en raison du paramètre Buf non typé, conduisant à une corruption potentielle de la mémoire. La taille d'enregistrement utilisée par BlockRead et BlockWrite est gérée par le second paramètre facultatif de l'appel de Reset ou Rewrite ayant été utilisé 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 et TFileStreams, au lieu d'être limité à l'utilisation des fichiers comme 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.

BlockRead lit au moins Count enregistrements depuis le fichier F et les transfère en mémoire, en partant du premier octet occupé par Buf. Le nombre réel d'enregistrements complets lus (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 a été transféré, Result est égal à Count.

Si Result est inférieur à Count, BlockRead a atteint la fin du fichier avant la fin du transfert. Si la taille d'enregistrement du fichier est supérieure à 1, Result renvoie le nombre d'enregistrements complets lus.

Si Result n'est pas spécifié, une erreur d'E/S se produit si le nombre d'enregistrements lus 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