Syntaxe
Put [#]filenumber, [recnumber], varname
|
Paramètres
Nom |
Description |
filenumber |
Ce paramètre permet d'indiquer tout numéro de dossier valide. |
recnumber |
Ce paramètre permet d'indiquer un numéro d'enregistrement (fichiers en mode aléatoire) ou numéro d'octet (fichiers en mode binaire) auquel l'écriture commence. |
varname |
Ce paramètre permet d'indiquer un nom de la variable contenant les données à écrire sur le disque. |
Description
Cette instruction permet d'écrire à partir d'une variable dans un fichier disque.
Remarques
- Le premier enregistrement ou octet d'un fichier est à la position 1, le deuxième enregistrement ou octet est à la position 2, et ainsi de suite. Si vous omettez recnumber, l'enregistrement
ou l'octet suivant (celui suivant la dernière instruction Get ou Put ou celui vers lequel pointe la dernière fonction
Seek) est écrit. Vous devez inclure des virgules de délimitation, par exemple :
Put #4,,FileBuffer
- Pour les fichiers ouverts en mode Random, les règles suivantes s'appliquent : Si la longueur des données en cours d'écriture est inférieure à la longueur spécifiée dans la clause
Len de l'instruction Open, Put écrit toujours les enregistrements suivants sur les limites de longueur d'enregistrement.
L'espace entre la fin d'un enregistrement et le début de l'enregistrement suivant est complété avec le contenu existant du tampon de fichier. Étant donné que la quantité de données de remplissage ne peut pas
être déterminée avec certitude, il est généralement judicieux que la longueur de l'enregistrement corresponde à la longueur des données en cours d'écriture. Si la longueur des données en cours d'écriture est
supérieure à celle spécifiée dans la clause Len de l'instruction Open, une erreur se produit.
Si la variable en cours d'écriture est une chaîne de caractèrse de longueur variable, Put écrit un descripteur de 2 octets contenant la longueur de la chaîne de caractères, puis la variable. La longueur
d'enregistrement spécifiée par la clause Len dans l'instruction Open doit être supérieure d'au moins 2 octets à la longueur réelle de la chaîne de caractères.
Si la variable en cours d'écriture est un Variant de type numérique, Put écrit 2 octets identifiant le
VarType du Variant, puis la variable. Par exemple, lors de l'écriture d'un Variant de VarType 3, Put
écrit 6 octets : 2 octets identifiant le Variant comme VarType 3 (Long) et 4 octets contenant les données Long. La
longueur d'enregistrement spécifiée par la clause Len dans l'instruction Open doit être supérieure d'au moins 2 octets au nombre réel d'octets requis pour entreposer la
variable.
Vous pouvez utiliser l'instruction Put pour écrire un tableau Variant sur le disque, mais vous ne pouvez pas utiliser Put pour
écrire un Variant scalaire contenant un tableau sur le disque. Vous ne pouvez pas non plus utiliser Put pour écrire des objets sur le disque.
Si la variable en cours d'écriture est une String Variant (VarType 8), Put écrit 2 octets identifiant le
VarType, 2 octets indiquant la longueur de la chaîne de caractères, puis les données de la chaîne de caractères. La longueur d'enregistrement spécifiée par la clause Len dans
l'instruction Open doit être supérieure d'au moins 4 octets à la longueur réelle de la chaîne de caractères.
Si la variable en cours d'écriture est un tableau dynamique, Put écrit un descripteur dont la longueur est égale à 2 plus 8 fois le nombre de dimensions, soit 2 + 8 * NumberOfDimensions. La longueur
d'enregistrement spécifiée par la clause Len dans l'instruction Open doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données du tableau et le
descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 118 octets lorsque le tableau est écrit sur le disque.
Dim MyArray(1 To 5,1 To 10) As Integer
Les 118 octets sont répartis comme suit : 18 octets pour le descripteur (2 + 8 * 2) et 100 octets pour les données (5 * 10 * 2).
Si la variable en cours d'écriture est un tableau de taille fixe, Put écrit uniquement les données. Aucun descripteur n'est écrit sur le disque.
Si la variable en cours d'écriture est un autre type de variable (pas une chaîne de caractères de longueur variable ou un Variant), Put écrit uniquement les données de
la variable. La longueur d'enregistrement spécifiée par la clause Len dans l'instruction Open doit être supérieure ou égale à la longueur des données en cours d'écriture.
L'instruction Put écrit les éléments de types définis par l'utilisateur comme si chacun était écrit individuellement, sauf qu'il n'y a pas de remplissage entre les éléments. Sur le disque, un tableau
dynamique dans un type défini par l'utilisateur écrit avec Put est précédé d'un descripteur dont la longueur est égale à 2 plus 8 fois le nombre de dimensions, soit 2 + 8 * NumberOfDimensions.
La longueur d'enregistrement spécifiée par la clause Len dans l'instruction Open doit être supérieure ou égale à la somme de tous les octets requis pour écrire les éléments
individuels, y compris les tableaux et leurs descripteurs.
- Pour les fichiers ouverts en mode Binary, toutes les règles Random s'appliquent sauf :
La clause Len dans l'instruction Open n'a aucun effet. L'instruction Put écrit toutes les variables sur le disque de manière contiguë; c'est-à-dire sans remplissage
entre les enregistrements. Pour tout tableau autre qu'un tableau dans un type défini par l'utilisateur, l'instruction Put écrit uniquement les données. Aucun descripteur n'est écrit.
L'instruction Put écrit des chaînes de caractères de longueur variable n'étant pas des éléments de types définis par l'utilisateur sans le descripteur de longueur de 2 octets. Le nombre d'octets écrits
est égal au nombre de caractères de la chaîne de caractères. Par exemple, les instructions suivantes écrivent 10 octets dans le fichier numéro 1 :
VarString$ = String$(10," ")
Put #1,,VarString$
Dernière mise à jour : Samedi, le 2 Janvier 2021