FileSystem.FilePutObject, méthode
Écrit les données d'une variable dans un fichier sur disque. La fonctionnalité My permet une meilleure productivité et de meilleures performances dans les opérations d'E/S de fichier que FilePutObject. Pour plus d'informations, consultez My.Computer.FileSystem, objet.
Espace de noms : Microsoft.VisualBasic
Assembly : Microsoft.VisualBasic (dans microsoft.visualbasic.dll)
Syntaxe
'Déclaration
Public Shared Sub FilePutObject ( _
FileNumber As Integer, _
Value As Object, _
<OptionalAttribute> Optional RecordNumber As Long = -1 _
)
'Utilisation
Dim FileNumber As Integer
Dim Value As Object
Dim RecordNumber As Long
FileSystem.FilePutObject(FileNumber, Value, RecordNumber)
public static void FilePutObject (
int FileNumber,
Object Value,
[OptionalAttribute] long RecordNumber
)
public:
static void FilePutObject (
int FileNumber,
Object^ Value,
[OptionalAttribute] long long RecordNumber
)
public static void FilePutObject (
int FileNumber,
Object Value,
/** @attribute OptionalAttribute() */ long RecordNumber
)
public static function FilePutObject (
FileNumber : int,
Value : Object,
RecordNumber : long
)
Paramètres
- FileNumber
Obligatoire. Tout numéro de fichier valide.
- Value
Obligatoire. Nom de variable valide contenant les données écrites sur le disque.
- RecordNumber
Facultatif. 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.
Notes
Pour plus d'informations, consultez la rubrique Visual Basic FilePutObject, fonction.
La fonction FilePutObject est utilisée à la place de FilePut afin d'éviter les ambiguïtés au moment de la compilation si le type Object est retourné plutôt qu'un autre type, par exemple Integer, Long, Short, etc.
FilePutObject écrit et lit des descripteurs qui décrivent l'objet. Si vous projetez d'écrire le type Variant, FilePutObject est requis. En cas de doute, si vous utilisez un objet pour le deuxième paramètre, il est conseillé de toujours utiliser FilePutObject et FileGetObject.
FilePutObject n'est valide qu'en mode Random et Binary.
Les données écrites à l'aide de la fonction FilePutObject sont généralement lues dans un fichier avec la fonction FileGetObject.
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 RecordNumber est omis, FilePutObject commence l'écriture à partir de l'enregistrement ou de l'octet suivant la dernière fonction FileGetObject ou FilePutObject (ou à partir de l'enregistrement ou de l'octet désigné par la dernière fonction Seek).
L'argument StringIsFixedLength contrôle si la fonction interprète des chaînes comme variables ou à 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 assurer en outre que la chaîne est initialisée à la longueur attendue.
Mode Random
Les règles suivantes s'appliquent aux fichiers ouverts en mode Random :
Si la longueur des données écrites est inférieure à la longueur spécifiée dans la clause RecordLength de la fonction FileOpen, FilePutObject 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 existant de la mémoire tampon du fichier. Comme il est impossible de déterminer avec précision 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 exception est levée si la longueur des données écrites est supérieure à la longueur spécifiée dans la clause RecordLength de la fonction FileOpen.
Si la variable écrite est un objet contenant un type numérique, FilePutObject écrit les deux octets identifiant le VarType de l'objet, puis écrit la variable. Par exemple, lors de l'écriture d'un objet contenant un entier, FilePutObject écrit six octets : deux octets identifiant l'objet comme VarType(3) (Integer) et quatre octets contenant les données. La longueur d'enregistrement spécifiée par le paramètre RecordLength dans la fonction FileOpen doit être supérieure d'au moins deux octets au nombre réel d'octets requis pour stocker la variable.
Si la variable écrite est un objet contenant une chaîne, FilePutObject écrit un descripteur à deux octets identifiant le VarType(8) de l'objet, un descripteur à deux octets indiquant la longueur de la chaîne, puis la chaîne de données. La longueur d'enregistrement spécifiée par le paramètre RecordLength dans la fonction FileOpen 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 descripteur, vous devez passer la valeur True au paramètre StringIsFixedLength et la chaîne lue doit être de la longueur voulue.
Si la variable en cours d'écriture est un tableau, vous pouvez au besoin écrire un descripteur décrivant la taille et des dimensions de ce tableau. Visual Basic 6.0 et les versions antérieures écrivaient le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Par défaut, Visual Basic n'écrit pas le descripteur. Pour écrire le descripteur, affectez la valeur True au paramètre ArrayIsDynamic. Lorsque vous écrivez le tableau, vous devez faire correspondre le mode de lecture du tableau ; s'il est lu avec le descripteur, vous devez écrire ce dernier. Le descripteur spécifie le rang du tableau, la taille et les limites inférieures de chaque rang. Sa longueur est égale à 2 plus 8 fois le nombre de dimensions : (2 + 8 * NumberOfDimensions). La longueur d'enregistrement spécifiée par la clause RecordLength dans la fonction FileOpen doit être supérieure ou égale à la somme de tous les octets nécessaires à l'écriture des données et du descripteur du tableau.
Mode binaire
Pour les fichiers ouverts en mode Binary, toutes les règles du mode Random s'appliquent, à l'exception de ce qui suit :
- La clause RecordLength de la fonction FileOpen n'a aucun effet. La fonction FilePutObject écrit toutes les variables sur le disque de manière contiguë, c'est-à-dire sans remplissage entre les enregistrements.
Exemple
Cet exemple utilise la fonction FilePutObject 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
Plates-formes
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
.NET Framework
Prise en charge dans : 2.0, 1.1, 1.0
Voir aussi
Référence
FileSystem, classe
Membres FileSystem
Microsoft.VisualBasic, espace de noms
Autres ressources
FilePutObject, fonction
FileGet, fonction
FileOpen, fonction
Seek, fonction
FilePut, fonction
My.Computer.FileSystem, objet
Écriture dans des fichiers en Visual Basic