BLOCKWRITE |
Écriture d'un bloc |
---|---|
Turbo Pascal 1+ | System |
Syntaxe
Procedure BlockWrite(fich:File; var x;enrs:Integer;Var enrs_ecrit:Integer); | Version 1 à 3 |
Procedure BlockWrite(fich:File; var x;enrs:Word;Var enrs_ecrit:Word); | Version 4 à 7 |
Paramètres
Nom | Description |
---|---|
fich | Ce paramètre permet d'indiquer l'identificateur de fichier |
x | Ce paramètre permet d'indiquer le tampon contenu les données à écrire |
enrs | Ce paramètre permet d'indiquer le nombre d'enregistrement à écrire |
enrs_ecrit | Ce paramètre retourne le nombre d'enregistrement écrit |
Description
Cette instruction permet d'effectuer l'écriture d'enregistrement dans un fichier.
Remarques
- Le paramètre fich est une variable de fichier non typée. Mais est une variable quelconque, enrs est une expression de type Word et enrs_ecrit est une variable de type Word.
- La procédure BlockWrite écrit enrs ou moins d'enregistrements dans le fichier fich à partir de la mémoire, en commençant par le premier octet occupé par x. Le nombre réel d'enregistrements complets écrits (inférieur ou égal à enrs) est renvoyé dans le paramètre facultatif enrs_ecrit. Si le enrs_ecrit n'est pas spécifié, une erreur d'entrée/sortie se produira si le nombre écrit n'est pas égal à enrs.
- Le bloc entier transféré occupe au plus enrs * RecSize octets, où RecSize est la taille de fichier spécifiée à l'ouverture du fichier (ou 128 si omis). Une erreur se produit si enrs * RecSize est supérieur à 65 535 (64 Ko).
- Le paramètre enrs_ecrit est un paramètre facultatif. Voici comment cela fonctionne : Si le bloc entier a été transféré, le enrs_ecrit sera égal à enrs est retourné. Sinon, si le résultat est inférieur à enrs, le disque est saturé avant la fin du transfert. Dans ce cas, si la taille de l'enregistrement du fichier est supérieure à un, enrs_ecrit renvoie le nombre d'enregistrements complets écrits, en d'autres termes, il est possible qu'un enregistrement partiel restant ne soit pas inclus dans enrs_ecrit.
- La position actuelle du fichier est avancée par les enregistrements de résultat enrs_ecrit en tant qu'effet de BlockWrite.
- Avec ($I-}, la fonction IOResult renvoie 0 si l'opération a réussi; sinon, elle renvoie un code d'erreur différent de zéro.
- La procédure BlockWrite doit obligatoirement lire un fichier déjà être ouvert.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
- Program BlockWriteSamples;
-
- Var
- Handle:File;
- Buffer:Array[0..127]of Byte;
- ByteWrite:Word;
-
- BEGIN
- Assign(Handle,'TEST.BIN');
- Rewrite(Handle,1);
- FillChar(Buffer,SizeOf(Buffer),0);
- Buffer[0] := 71;
- Buffer[1] := 76;
- Buffer[2] := 65;
- Buffer[3] := 68;
- Buffer[4] := 73;
- Buffer[5] := 82;
- BlockWrite(Handle,Buffer,SizeOf(Buffer),ByteWrite);
- Close(Handle);
- END.
on obtiendra le résultat suivant dans le fichier «TEST.BIN» :
GLADIRRéférence
Aide-mémoire de Turbo Pascal versions de 3 à 6, Edition Marabout, De Groote, Virga, 1992, ISBN: 2-501-01833-8, page 110 à 111.
Le grand livre du Turbo & Borland Pascal 7.0, Edition Micro Application, Reiner Scholles, 1993, ISBN: 2-86899-873-9, page 1215.
Dernière mise à jour : Dimanche, le 25 janvier 2015