cs_neodante
Messages postés
2835
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
11
18 août 2003 à 18:18
8-) Neodante 8-)
> put #1, ,"12"
non justement pas de chaîne de caractère "12" mais la valeur 12 tout simplement. Normalement cela devrait marcher.
> Merci de t'occuper de moi en tout cas...
Y a pas de quoi !!
@+
Je te joins quand même l'extrait de MSDN :
--------------------------------------------------------------------
Put, instruction
Écrit les données d'unevariable dans un fichier disque.
Syntaxe
Put [#]filenumber, [recnumber], varname
La syntaxe de l'instruction Put comprend les éléments suivants :
Élément Description
filenumber Toutnuméro de fichier valide.
recnumber Facultatif. Donnée de type Variant (Long). Numéro de l'enregistrement (fichiers ouverts en mode Random) ou de l'octet (fichiers ouverts en mode Binary) qui marque le début de l'écriture.
varname Nom de la variable contenant les données à écrire sur le disque.
Remarques
Les données écrites à l'aide de l'instruction Put sont généralement lues dans un fichier avec l'instruction Get.
Le premier enregistrement ou octet d'un fichier occupe la position 1, le deuxième enregistrement ou octet la position 2, et ainsi de suite. Si l'argument recnumber est omis, l'écriture commence à partir de l'enregistrement ou de l'octet suivant la dernière instruction Get ou Put (ou à partir de celui désigné par la dernière fonction Seek). Vous devez inclure des séparateurs virgules. Exemple :
Put #4,,FileBuffer
Les règles suivantes s'appliquent aux fichiers ouverts en mode Random :
Si la longueur des données écrites est inférieure à la longueur indiquée dans la clause Len de l'instruction Open, l'instruction Put poursuit l'écriture des enregistrements suivants conformément aux limites de longueur des enregistrements. L'espace compris entre la fin d'un enregistrement et le début de l'enregistrement suivant est rempli par le contenu de la zone tampon du fichier. Comme il est impossible de déterminer avec certitude le volume des données de remplissage, il est généralement préférable que la longueur des enregistrements corresponde à la longueur des données écrites. Une erreur se produit si la longueur des données écrites est supérieure à celle indiquée dans la clause Len de l'instruction Open.
Si la variable écrite est une chaîne de longueur variable, l'instruction Put écrit d'abord un descripteur de 2 octets contenant la longueur de la chaîne, puis la variable. La longueur d'enregistrement indiqué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.
Si la variable écrite est une valeurVariant detype numérique, l'instruction Put écrit les 2 octets qui identifient le VarType de la valeur de type Variant puis la variable. Par exemple, lorsqu'elle écrit une valeur de type Variant de VarType 3, l'instruction Put écrit 6 octets : 2 octets qui identifient la valeur de type Variant comme étant de VarType 3 (Long) et 4 octets contenant les données de type Long. La longueur d'enregistrement indiqué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 stocker la variable.
Note Vous pouvez utiliser l'instruction Put pour écrire untableau de type Variant sur un disque, mais vous ne pouvez pas l'utiliser pour écrire sur disque un scalaire de type Variant contenant un tableau. Vous ne pouvez pas non plus utiliser l'instruction Put pour écrire des objets sur un disque.
Si la variable écrite est de type Variant de VarType 8 (String), l'instruction Put écrit 2 octets qui identifient le type VarType, 2 octets qui indiquent la longueur de la chaîne puis les données de la chaîne. La longueur d'enregistrement indiqué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.
Si la variable écrite est un tableau dynamique, l'instruction 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 indiquée par la clause Len dans l'instruction Open doit être supérieure ou égale à la somme de tous les octets nécessaires à l'écriture des données et du descripteur du tableau. Par exemple, la déclaration de tableau suivante nécessite 118 octets pour l'écriture du tableau sur le disque.
Dim MyArray(1 To 5,1 To 10) As Integer
Les 118 octets se décomposent de la façon suivante : 18 octets pour le descripteur (2 + 8 * 2) et 100 octets pour les données (5 * 10 * 2).
Si la variable écrite est un tableau de taille fixe, l'instruction Put n'écrit que les données. Elle n'écrit aucun descripteur sur le disque.
Si la variable écrite est d'un type différent (pas une chaîne de longueur variable ou une valeur de type Variant), l'instruction Put n'écrit que les données de la variable. La longueur d'enregistrement indiquée par la clause Len dans l'instruction Open doit être supérieure ou égale à la longueur des données écrites.
L'instruction Put écrit des éléments detypes définis par l'utilisateur comme si chacun d'eux était écrit de façon individuelle, à la différence près qu'il n'y a pas de remplissage entre les éléments. Sur disque, un tableau dynamique de type défini par l'utilisateur écrit avec l'instruction 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 indiquée par la clause Len dans l'instruction Open doit être supérieure ou égale à la somme de tous les octets nécessaires à l'écriture des éléments individuels, y compris les tableaux et leurs descripteurs.
Pour les fichiers ouverts en mode Binary, toutes les règles du mode Random s'appliquent, aux exceptions suivantes :
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 que ceux de type défini par l'utilisateur, l'instruction Put n'écrit que les données. Elle n'écrit aucun descripteur.
L'instruction Put écrit les chaînes de longueur variable qui ne sont pas des éléments de type défini par l'utilisateur, sans rechercher le descripteur de 2 octets. Le nombre d'octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 10 octets dans le fichier numéro 1 :
VarString$ = String$(10," ")
Put #1,,VarString$