Partager via


FileSystem.FileGet, méthode (Int32, Byte, Int64)

Lit les données d'un fichier disque ouvert et les place dans une variable. La fonctionnalité My permet une meilleure productivité et de meilleures performances dans les opérations d'E/S de fichier que FileGet. Pour plus d'informations, consultez My.Computer.FileSystem, objet.

Espace de noms : Microsoft.VisualBasic
Assembly : Microsoft.VisualBasic (dans microsoft.visualbasic.dll)

Syntaxe

'Déclaration
Public Shared Sub FileGet ( _
    FileNumber As Integer, _
    ByRef Value As Byte, _
    <OptionalAttribute> Optional RecordNumber As Long = -1 _
)
'Utilisation
Dim FileNumber As Integer
Dim Value As Byte
Dim RecordNumber As Long

FileSystem.FileGet(FileNumber, Value, RecordNumber)
public static void FileGet (
    int FileNumber,
    ref byte Value,
    [OptionalAttribute] long RecordNumber
)
public:
static void FileGet (
    int FileNumber, 
    unsigned char% Value, 
    [OptionalAttribute] long long RecordNumber
)
public static void FileGet (
    int FileNumber, 
    /** @ref */ byte Value, 
    /** @attribute OptionalAttribute() */ long RecordNumber
)
JScript ne prend pas en charge le passage d'arguments de type valeur par référence.

Paramètres

  • FileNumber
    Obligatoire. Tout numéro de fichier valide.
  • Value
    Obligatoire. Nom de variable valide dans lequel les données sont lues.
  • RecordNumber
    Facultatif. Numéro de l'enregistrement (fichiers ouverts en mode Random) ou de l'octet (fichiers ouverts en mode Binary) par lequel la lecture débute.

Notes

Pour plus d'informations, consultez la rubrique Visual Basic FileGet, fonction.

FileGet n'est valide qu'en mode Random et Binary.

Les données lues à l'aide de la fonction FileGet sont généralement écrites dans un fichier avec la fonction FilePut.

Le premier enregistrement ou octet d'un fichier occupe la position 1, le deuxième enregistrement ou octet la position 2, et ainsi de suite. Si l'argument RecordNumber est omis, la lecture commence à partir de l'enregistrement ou de l'octet suivant la dernière fonction FileGet ou FilePut (ou à partir de l'enregistrement ou de l'octet désigné par la dernière fonction Seek).

Remarque de sécuritéRemarque de sécurité

Lors de la lecture de fichiers, ne décidez pas du contenu d'un fichier en vous basant sur l'extension de son nom. Par exemple, un fichier nommé Form1.vb peut ne pas être un fichier source Visual Basic .

Mode Random

Les règles suivantes s'appliquent aux fichiers ouverts en mode Random :

  • Si la longueur des données lues est inférieure à la longueur spécifiée dans la clause RecordLength de la fonction FileOpen, la fonction FileGet poursuit la lecture des enregistrements suivants conformément aux limites de longueur des enregistrements. L'espace compris entre la fin d'un enregistrement et le début de l'enregistrement suivant est rempli par le contenu existant de la mémoire tampon du fichier. Comme il est impossible de déterminer avec certitude le volume des données de remplissage, il est généralement préférable que la longueur des enregistrements corresponde à la longueur des données lues.

  • Si la variable lue est une chaîne, FileGet lit par défaut un descripteur à deux octets contenant la longueur de la chaîne, puis lit les données qui sont placées dans la variable. La longueur d'enregistrement spécifiée par la clause RecordLength de la fonction FileOpen doit donc être supérieure d'au moins deux octets à la longueur réelle de la chaîne. Visual Basic 6.0 et les versions antérieures prennent en charge les chaînes de longueur fixe ; lors de leur écriture dans un fichier, le descripteur de longueur n'est pas écrit. Si vous souhaitez lire une chaîne sans descripteur, vous devez passer la valeur True au paramètre StringIsFixedLength et la chaîne lue doit être de la longueur voulue.

  • Si la variable lue est un tableau, vous pouvez au besoin lire un descripteur de la taille et des dimensions du tableau. Pour écrire le descripteur, affectez la valeur True au paramètre ArrayIsDynamic. Lors de la lecture du tableau, vous devez vous conformer à la manière dont il a été écrit. Si le tableau a été écrit avec le descripteur, vous devez lire le descripteur. Si le descripteur n'est pas employé, la taille et les limites du tableau passées à FileGet déterminent ce qu'il faut lire.

    Le descripteur spécifie le rang du tableau, la taille et les limites inférieures de chaque rang. Sa longueur est égale à 2 plus 8 fois le nombre de dimensions : (2 + 8 * NumberOfDimensions). La longueur d'enregistrement spécifiée par le paramètre RecordLength dans la fonction FileOpen doit être supérieure ou égale à la somme de tous les octets nécessaires à l'écriture des données et du descripteur du tableau. Par exemple, la déclaration de tableau suivante nécessite 118 octets pour l'écriture du tableau sur le disque.

    Dim MyArray(4,9) As Integer
    

    Les 118 octets sont distribués comme suit :

    • 18 octets pour le descripteur : (2 + 8 * 2)

    • 100 octets pour les données : (5 * 10 * 2).

  • Si la variable lue est un autre type de variable (ni une chaîne de longueur variable ni un objet), FileGet ne lit que les données variables. La longueur d'enregistrement spécifiée par la clause RecordLength dans la fonction FileOpen doit être supérieure ou égale à la longueur des données lues.

  • FileGet lit les éléments de structures comme si chacun d'entre eux était lu individuellement, sauf qu'il n'y a pas de remplissage entre les éléments. Sur un disque, un tableau dynamique d'un type défini par l'utilisateur (écrit avec la fonction FilePut) est préfixé d'un descripteur dont la longueur est égale à 2 plus 8 fois le nombre de dimensions : (2 + 8 * NumberOfDimensions). La longueur d'enregistrement spécifiée par la clause RecordLength dans la fonction FileOpen doit être supérieure ou égale à la somme de tous les octets nécessaires à la lecture des éléments individuels, y compris les tableaux et leurs descripteurs. L'attribut VBFixedString peut être appliqué aux champs de type chaîne dans les structures pour indiquer la taille d'une chaîne lors de l'écriture sur le disque.

Mode binaire

Pour les fichiers ouverts en mode Binary, la plupart des règles du mode Random s'appliquent, à quelques exceptions près. Les règles suivantes pour les fichiers ouverts en mode Binary diffèrent des règles appliquées au mode Random  :

  • La clause RecordLength de la fonction FileOpen n'a aucun effet. La fonction FileGet lit toutes les variables du disque de manière contiguë, c'est-à-dire sans remplissage entre les enregistrements.

  • Pour tout tableau autre que ceux d'une structure, la fonction FileGet ne lit que les données. Elle ne lit aucun descripteur.

  • FileGet lit les chaînes de longueur variable qui ne sont pas des éléments de structures, sans rechercher le descripteur de longueur à deux octets. Le nombre d'octets lus est égal au nombre de caractères déjà présents dans la chaîne.

    Remarque de sécuritéRemarque de sécurité

    La lecture d'un fichier avec la fonction FileGet requiert l'accès Read de l'énumération FileIOPermissionAccess.

Plates-formes

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

Voir aussi

Référence

FileSystem, classe
Membres FileSystem
Microsoft.VisualBasic, espace de noms

Autres ressources

FileGet, fonction
FileOpen, fonction
FilePut, fonction
Seek, fonction
FileGetObject, fonction
Lecture à partir de fichiers en Visual Basic
Écriture dans des fichiers en Visual Basic