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 des données d’une variable dans un fichier de disque. La My fonctionnalité vous offre une meilleure productivité et des performances dans les opérations d’E/S de fichier que 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
Required. N’importe quel numéro de fichier valide.
- Value
- Object
Required. Nom de variable valide qui contient les données écrites sur le disque.
- RecordNumber
- Int64
Optional. Numéro d’enregistrement (Random fichiers en mode) ou nombre d’octets (Binary fichiers en mode) au démarrage de l’écriture.
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 d’éviter les ambiguïtés au moment de FilePut la compilation si le type Object est passé au lieu d’un autre type, tel que Integer, Long, Shortet ainsi de suite.
FilePutObject écrit et lit les descripteurs qui décrivent l’objet. Si vous envisagez d’écrire le Variant type, FilePutObject il est nécessaire. En cas de doute, si vous utilisez un objet pour le deuxième paramètre, nous vous recommandons d’utiliser FilePutObject toujours et FileGetObject.
FilePutObjectest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePutObject sont généralement lues à partir d’un fichier à l’aide FileGetObjectde .
Dans un fichier, le premier enregistrement ou octet se trouve à la position 1, le deuxième enregistrement ou octet se trouve à la position 2, etc. Si vous ne spécifiez qu'un enregistrement, seul ce dernier est verrouillé ou déverrouillé. Si vous omettez RecordNumber, FilePutObject écrit l’enregistrement ou l’octet suivant après la dernière FileGetObjectFilePutObject ou fonction (ou l’enregistrement ou l’octet pointé par la dernière Seek fonction).
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur 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 rempli 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 précisément, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données écrites. Si la longueur des données écrites 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 l’objetVarType, 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 en tant queVarType(3)(Integer) et quatre octets qui contiennent les données. La longueur d’enregistrement spécifiée par leRecordLengthparamètre dans laFileOpenfonction doit être au moins deux octets supérieurs au nombre réel 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 à deux octets identifiant l’objetVarType(8), un descripteur à 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 de laFileOpenfonction doit être au moins quatre octets supérieurs à 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 dans laquelle vous lisez doit être la longueur correcte.Si la variable en cours d’écriture est un tableau, la longueur d’enregistrement spécifiée par la clause de la
RecordLengthFileOpenfonction 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. Le descripteur spécifie le rang du tableau, la taille et les limites inférieures pour chaque rang. 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 mode s’appliquent Random , sauf :
- La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutObjectécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.