Remarque : La fonction, la méthode, l’objet ou la propriété décrite dans cette rubrique est désactivée si le service d’expression Microsoft Jet s’exécute en mode bac à sable, ce qui empêche l’évaluation d’expressions potentiellement dangereuses. Pour plus d’informations sur le mode bac à sable, recherchez « mode bac à sable » dans l’aide.
Renvoie une valeur de type Long spécifiant la position de lecture/écriture actuelle dans un fichier ouvert à l’aide de l’instruction Open .
Syntaxe
Seek( filenumber )
Le argument filenumber requis est un entier contenant un numéro de fichier valide.
Notes
Seek retourne une valeur comprise entre 1 et 2 147 483 647 (équivalente à 2^31 – 1), inclus.
La section suivante décrit les valeurs de retour pour chaque mode d’accès aux fichiers.
Mode |
Valeur renvoyée |
Aléatoire |
Numéro de l’enregistrement suivant lu ou écrit |
Binary,Output,Append,Input |
Position d’octet à laquelle l’opération suivante a lieu. Le premier octet d’un fichier est à la position 1, le deuxième octet est à la position 2, et ainsi de suite. |
Exemple
Remarque : Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de Rechercher et entrez un ou plusieurs termes dans la zone de recherche.
Cet exemple utilise la fonction Seek pour retourner la position actuelle du fichier. L’exemple suppose TESTFILE est un fichier contenant des enregistrements du type défini par l’utilisateur Record.
Type Record ' Define user-defined type.
ID As Integer Name As String * 20 End Type
Pour les fichiers ouverts en mode aléatoire, Seek retourne le nombre d’enregistrements suivants.
Dim MyRecord As Record ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) Do While Not EOF(1) ' Loop until end of file. Get #1, , MyRecord ' Read next record. ' Print record number to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.
Pour les fichiers ouverts dans des modes autres que le mode aléatoire, Seek retourne la position d’octet à laquelle l’opération suivante a lieu. Supposons que TESTFILE est un fichier contenant quelques lignes de texte.
Dim MyChar
Open "TESTFILE" For Input As #1 ' Open file for reading. Do While Not EOF(1) ' Loop until end of file. MyChar = Input(1, #1) ' Read next character of data. ' Print byte position to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.