Seek, instruction

Définit la position de l’opération de lecture/écriture suivante dans un fichier ouvert à l’aide de l’instruction Open .

Syntaxe

Seek [ # ] filenumber, position

La syntaxe de l’instruction Seek contient les parties suivantes :

Élément Description
filenumber Obligatoire. Numéro de fichier valide.
position Obligatoire. Nombre compris entre 1 et 2 147 483 647, inclus, qui indique où la prochaine opération de lecture/écriture doit avoir lieu.

Remarques

Les numéros d’enregistrement spécifiés dans les instructions Get et Put remplacent le positionnement de fichier effectué par Seek.

L’exécution d’une opération d’écriture dans le fichier après une opération Seek au-delà de la fin du fichier étend le fichier. Si vous tentez d’exécuter une opération Seek sur une position négative ou zéro, une erreur survient.

Exemple

Cet exemple utilise l’instruction Seek pour définir la position de la prochaine lecture ou écriture dans un fichier. Cet exemple suppose que TESTFILE est un fichier contenant des enregistrements du type Recorddéfini par l’utilisateur.

Type Record ' Define user-defined type. 
 ID As Integer 
 Name As String * 20 
End Type 

Pour les fichiers ouverts en mode aléatoire, l’instruction Seek définit l’enregistrement suivant.

Dim MyRecord As Record, MaxSize, RecordNumber ' Declare variables. 
' Open file in random-file mode. 
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) 
MaxSize = LOF(1) \ Len(MyRecord) ' Get number of records in file. 
' The loop reads all records starting from the last. 
For RecordNumber = MaxSize To 1 Step - 1 
 Seek #1, RecordNumber ' Set position. 
 Get #1, , MyRecord ' Read record. 
Next RecordNumber 
Close #1 ' Close file. 

Pour les fichiers ouverts dans des modes autres que le mode aléatoire, Seek définit la position d’octet à laquelle l’opération suivante a lieu. Cet exemple suppose qu’il TESTFILE s’agit d’un fichier contenant quelques lignes de texte.

Dim MaxSize, NextChar, MyChar 
Open "TESTFILE" For Input As #1 ' Open file for input. 
MaxSize = LOF(1) ' Get size of file in bytes. 
' The loop reads all characters starting from the last. 
For NextChar = MaxSize To 1 Step -1 
 Seek #1, NextChar ' Set position. 
 MyChar = Input(1, #1) ' Read character. 
Next NextChar 
Close #1 ' Close file. 

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.