FileSystem.FilePutObject(Int32, Object, Int64) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Écrit les données d'une variable dans un fichier sur disque. La fonctionnalité My
améliore la productivité et les performances des opérations d’E/S de fichier par rapport à FilePutObject
. Pour plus d'informations, consultez FileSystem.
public static void FilePutObject (int FileNumber, object Value, long RecordNumber = -1);
static member FilePutObject : int * obj * int64 -> unit
Public Sub FilePutObject (FileNumber As Integer, Value As Object, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Obligatoire. N’importe quel numéro de fichier valide.
- Value
- Object
Obligatoire. Nom de variable valide contenant les données écrites sur le disque.
- RecordNumber
- Int64
Optionnel. Numéro de l'enregistrement (fichiers ouverts en mode Random
) ou de l'octet (fichiers ouverts en mode Binary
) par lequel l'écriture débute.
Exemples
Cet exemple utilise la FilePutObject
fonction pour écrire une chaîne dans un fichier.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
Remarques
La FilePutObject
fonction est utilisée au lieu de pour éviter les ambiguïtés au moment de FilePut
la compilation si le type Object
est passé à la place d’un autre type, tel que Integer
, Long
, Short
et ainsi de suite.
FilePutObject
écrit et lit des descripteurs qui décrivent l’objet. Si vous avez l’intention d’écrire le Variant
type, FilePutObject
est obligatoire. En cas de doute, si vous utilisez un objet pour le deuxième paramètre, nous vous recommandons d’utiliser FilePutObject
toujours et FileGetObject
.
FilePutObject
est valide uniquement en Random
mode et Binary
.
Les données écrites avec FilePutObject
sont généralement lues à partir d’un fichier à l’aide de FileGetObject
.
Le premier enregistrement ou octet d’un fichier se trouve à la position 1, le deuxième enregistrement ou octet se trouve à la position 2, et ainsi de suite. Si vous omettez RecordNumber
, FilePutObject
écrit l’enregistrement ou l’octet suivant après la dernière FileGetObject
fonction ou FilePutObject
(ou l’enregistrement ou l’octet pointé vers la dernière Seek
fonction).
L’argument StringIsFixedLength
contrôle si la fonction interprète les chaînes comme une longueur variable ou fixe. FilePutObject
n’écrit pas le descripteur de longueur lorsque l’argument est True
. Si vous utilisez StringIsFixedLength
= True
avec FilePutObject
, vous devez faire de même avec FileGetObject
, et vous devez également vous assurer que la chaîne est initialisée à la longueur attendue.
Mode aléatoire
Pour les fichiers ouverts en Random
mode, 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
RecordLength
clause de laFileOpen
fonction,FilePutObject
écrit 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 de la mémoire tampon de fichier. Étant donné que la quantité de données de remplissage ne peut pas être déterminée avec précision, il est généralement judicieux de faire en sorte 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 à la longueur spécifiée dans laRecordLength
clause de laFileOpen
fonction, une exception est levée.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutObject
écrit deux octets identifiant leVarType
de l’objet, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePutObject
écrit six octets : deux octets qui identifient l’objet commeVarType(3)
(Integer
) et quatre octets qui contiennent les données. La longueur d’enregistrement spécifiée par leRecordLength
paramètre dans laFileOpen
fonction doit être supérieure d’au moins deux octets au nombre d’octets requis pour stocker la variable.Si la variable en cours d’écriture est un objet qui contient une chaîne,
FilePutObject
écrit un descripteur de deux octets identifiant leVarType(8)
de l’objet, un descripteur de deux octets indiquant la longueur de la chaîne, puis écrit les données de chaîne. La longueur d’enregistrement spécifiée par leRecordLength
paramètre dans laFileOpen
fonction doit être supérieure d’au moins quatre octets à la longueur réelle de la chaîne. Si vous souhaitez placer une chaîne sans le descripteur, vous devez passerTrue
auStringIsFixedLength
paramètre, et la chaîne que vous lisez doit avoir la longueur correcte.Si la variable en cours d’écriture est un tableau, la longueur d’enregistrement spécifiée par la
RecordLength
clause de laFileOpen
fonction doit être supérieure ou égale à la somme de tous les octets nécessaires pour écrire les données du tableau et le descripteur de tableau. Le descripteur spécifie le rang du tableau, la taille et les limites inférieures pour chaque classement. Sa longueur est égale à 2 plus 8 fois le nombre de dimensions : (2 + 8 * NumberOfDimensions).
Mode binaire
Pour les fichiers ouverts en Binary
mode, toutes les règles de Random
mode s’appliquent, sauf :
- La
RecordLength
clause de laFileOpen
fonction n’a aucun effet.FilePutObject
écrit toutes les variables sur le disque de manière contiguë, c’est-à-dire sans remplissage entre les enregistrements.