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, Shortet 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
RecordLengthclause de laFileOpenfonction,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 laRecordLengthclause de laFileOpenfonction, 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 leVarTypede 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 leRecordLengthparamètre dans laFileOpenfonction 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 leRecordLengthparamètre dans laFileOpenfonction 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 passerTrueauStringIsFixedLengthparamè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
RecordLengthclause de laFileOpenfonction 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
RecordLengthclause de laFileOpenfonction n’a aucun effet.FilePutObjectécrit toutes les variables sur le disque de manière contiguë, c’est-à-dire sans remplissage entre les enregistrements.