Syntaxe
Get [#]filenumber, [recnumber], varname
|
Paramètres
Nom |
Description |
filenumber |
Ce paramètre permet d'indiquer tout numéro de fichier valide. |
recnumber |
Ce paramètre permet d'indiquer un numéro d'enregistrement (fichiers en mode Random) ou numéro d'octet (fichiers en mode Binary) auquel la lecture commence. |
varname |
Ce paramètre permet d'indiquer un nom de variable valide dans lequel les données sont lues. |
Description
Cette instruction permet de lire un fichier disque ouvert dans une variable.
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 après la dernière instruction Get ou Put ou celui pointé par la dernière fonction Seek) est lu. Des virgules de
délimitation doivent être incluses, par exemple :
Get #4,,FileBuffer
- Pour les fichiers ouverts en mode Random, les règles suivantes s'appliquent :
Si la longueur des données en cours de lecture est inférieure à la longueur spécifiée dans la clause Len de l'instruction Open, Get lit 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
lues.
Si la variable en cours de lecture est une chaîne de caractères de longueur variable, Get lit un descripteur de 2 octets contenant la longueur de la chaîne de caractères, puis les données entrant dans la variable.
Par conséquent, 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 actuel de la chaîne de
caractères.
Si la variable lue est un Variant de type numérique, Get lit 2 octets identifiant le VarType du Variant,
puis les données qui entrent dans la variable. Par exemple, lors de la lecture d'un Variant de VarType 3, le Get lit 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 Get pour lire un tableau Variant à partir du disque, mais vous ne pouvez pas utiliser Get pour lire un
Variant scalaire contenant un tableau. Vous ne pouvez pas non plus utiliser Get pour lire des objets à partir du disque.
Si la variable en cours de lecture est une String Variant (VarType 8), Get lit 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 lue est un tableau dynamique, Get lit un descripteur dont la longueur est égale à 2 plus 8 fois le nombre de dimensions, c'est-à-dire 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 lire 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 MonTable Array(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 lue est un tableau de taille fixe, Get lit uniquement les données. Aucun descripteur n'est lu.
Si la variable lue est un autre type de variable (pas une chaîne de longueur variable ou un Variant), Get lit 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 de lecture.
Get lit les éléments de types définis par l'utilisateur comme si chacun était lu 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éfixé par 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 lire 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 :
En mode Binary, la clause Len dans l'instruction Open n'a aucun effet. Get lit toutes les variables du 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, Get lit uniquement les données. Aucun descripteur n'est lu. Get lit des chaînes de
caractères longueur variable n'étant pas des éléments de types définis par l'utilisateur sans attendre le descripteur de longueur de 2 octets. Le nombre d'octets lus est égal au nombre de caractères déjà
dans la chaîne de caractères. Par exemple, les instructions suivantes lisent 10 octets à partir du fichier numéro 1 :
VarString = String(10," ")
Get #1,,VarString
Dernière mise à jour : Samedi, le 2 Janvier 2021