System.BlockRead
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
- BlockWrite
- Utilisation des flux pour lire ou écrire des données
- Flux, lecteurs et concepteurs
- Support des entrées et des sorties des fichiers
- Routines intrinsèques de Delphi
- TFileStream
- TStreamReader
- TStreamWriter
- EInOutError
- Rewrite
- Reset
- AssignFile
- CloseFile