FileSystem.FilePut 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 FilePut. Pour plus d’informations, consultez FileSystem.
Surcharges
| Nom | Description |
|---|---|
| FilePut(Int32, Int64, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, String, Int64, Boolean) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Object, Object, Object) |
Obsolète.
Obsolète.
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, ValueType, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Single, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Int32, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Double, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Decimal, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, DateTime, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Char, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Byte, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Boolean, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
| FilePut(Int32, Int16, Int64) |
Écrit des données d’une variable dans un fichier de disque. La |
FilePut(Int32, Int64, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Int64
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, String, Int64, Boolean)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- String
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.
- StringIsFixedLength
- Boolean
Optional. S’applique uniquement lors de l’écriture d’une chaîne. Spécifie s’il faut écrire un descripteur de longueur de chaîne à deux octets pour la chaîne dans le fichier. La valeur par défaut est False.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Object, Object, Object)
Attention
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Attention
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
É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 FilePut. Pour plus d’informations, consultez FileSystem.
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Paramètres
- FileNumber
- Object
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
- Object
Optional. Numéro d’enregistrement (Random fichiers en mode) ou nombre d’octets (Binary fichiers en mode) au démarrage de l’écriture.
- Attributs
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, ValueType, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- ValueType
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Single, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Single
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Int32, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Int32
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Array, Int64, Boolean, Boolean)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Array
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.
- ArrayIsDynamic
- Boolean
Optional. S’applique uniquement lors de l’écriture d’un tableau. Spécifie si le tableau doit être traité comme dynamique et s’il faut écrire un descripteur de tableau pour la chaîne qui décrit la longueur.
- StringIsFixedLength
- Boolean
Optional. S’applique uniquement lors de l’écriture d’une chaîne. Spécifie s’il faut écrire un descripteur de longueur de chaîne à deux octets pour la chaîne dans le fichier. La valeur par défaut est False.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Double, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Double
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Decimal, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Decimal
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, DateTime, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- DateTime
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Char, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Char
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Byte, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Byte
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Boolean, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Boolean
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic
S’applique à
FilePut(Int32, Int16, Int64)
É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 FilePut. Pour plus d’informations, consultez FileSystem.
public static void FilePut(int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Paramètres
- FileNumber
- Int32
Required. N’importe quel numéro de fichier valide.
- Value
- Int16
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.
Exceptions
RecordNumber
< 1 et non égal à -1.
Le mode fichier n’est pas valide.
Exemples
Cet exemple utilise la FilePut fonction pour écrire des données dans un fichier. Cinq enregistrements de la structure Person sont écrits dans le fichier.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Remarques
FilePutest valide uniquement en mode et Binary en Random mode.
Les données écrites avec FilePut sont généralement lues à partir d’un fichier à l’aide FileGetde .
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, l’enregistrement ou l’octet suivant après la dernière FileGet ou FilePut fonction ou pointé par la dernière Seek fonction est écrit.
L’argument StringIsFixedLength contrôle si la fonction interprète les chaînes comme une variable ou une longueur fixe.
FilePut n’écrit pas le descripteur de longueur lorsque l’argument est True. Si vous utilisez StringIsFixedLength = True avec FilePut, vous devez faire de même avec FileGet, et vous devez 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,FilePuté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 avec certitude, il est généralement judicieux d’avoir la longueur de l’enregistrement correspondant à la longueur des données en cours d’écriture. 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 une chaîne,
FilePutécrit un descripteur à deux octets qui contient la longueur de chaîne, puis écrit les données qui entrent dans la variable. Par conséquent, la longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être au moins deux octets supérieurs à la longueur réelle de la chaîne.Si la variable en cours d’écriture est un objet qui contient un type numérique,
FilePutécrit deux octets identifiant l’objetVarType, puis écrit la variable. Par exemple, lors de l’écriture d’un objet qui contient un entier,FilePuté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,
FilePuté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, vous avez le choix entre l’écriture ou non d’un descripteur pour la taille et les dimensions du tableau. Visual Basic 6.0 et versions antérieures écrivent le descripteur de fichier pour un tableau dynamique, mais pas pour un tableau de taille fixe. Visual Basic 2005 par défaut pour ne pas écrire le descripteur. Pour écrire le descripteur, définissez le
ArrayIsDynamicparamètre surTrue. Lorsque vous écrivez le tableau, vous devez correspondre à la façon dont le tableau sera lu ; s’il sera lu avec le descripteur, vous devez écrire le descripteur. 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). La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la somme de tous les octets requis pour écrire les données de tableau et le descripteur de tableau. Par exemple, la déclaration de tableau suivante nécessite 218 octets lorsque le tableau est écrit sur disque.Dim MyArray(4, 9) As IntegerSi la variable en cours d’écriture est un autre type de variable (pas une chaîne de longueur variable ou un objet),
FilePutécrit uniquement les données de variable. La longueur d’enregistrement spécifiée par laRecordLengthclause de laFileOpenfonction doit être supérieure ou égale à la longueur des données écrites.FilePutécrit des éléments de structures comme s’ils étaient écrits individuellement, sauf qu’il n’y a pas de remplissage entre les éléments. L’attributVBFixedStringpeut être appliqué aux champs de chaîne dans les structures pour indiquer la taille de la chaîne lorsqu’elle est écrite sur le disque.Note
Les champs de chaîne qui ont plus d’octets que spécifiés par l’attribut
VBFixedStringsont tronqués lorsqu’ils sont écrits sur le disque,
Mode binaire
Pour les fichiers ouverts en Binary mode, la plupart des règles de Random mode s’appliquent, avec certaines exceptions. Les règles suivantes pour les fichiers ouverts en Binary mode diffèrent des règles de Random mode :
La
RecordLengthclause de la fonction n’aFileOpenaucun effet.FilePutécrit toutes les variables sur disque contiguëment, c’est-à-dire sans remplissage entre les enregistrements.Pour tout tableau autre qu’un tableau d’une structure,
FilePutécrit uniquement les données. Elle n’écrit aucun descripteur.FilePutécrit des chaînes de longueur variable qui ne sont pas des éléments de structures sans le descripteur de longueur à deux octets. Le nombre d’octets écrits est égal au nombre de caractères de la chaîne. Par exemple, les instructions suivantes écrivent 11 octets dans le numéro de fichier 1 :Dim hellow As String = "Hello World" FilePut(1, hellow)L’écriture dans un fichier à l’aide de la
FilePutfonction nécessiteWriteun accès à partir de l’énumération FileIOPermissionAccess .
Voir aussi
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing dans les fichiers dans Visual Basic