Comment utiliser l’instruction Seek dans VBA ?

L’instruction `Seek` en VBA (Visual Basic for Applications) est utilisée principalement pour positionner le pointeur de fichier à une position spécifique dans un fichier ouvert. Ceci est souvent utile lorsque vous travaillez avec des fichiers en mode binaire ou accès aléatoire et que vous avez besoin de lire ou écrire à une position particulière.

Voici comment utiliser `Seek` dans VBA :

  • Ouvrir un fichier : Utilisez l’instruction `Open` pour ouvrir un fichier avant d’utiliser `Seek`. Le fichier peut être ouvert en mode Input, Output, Random, Append, ou Binary.
  • Utiliser Seek : Une fois le fichier ouvert, vous pouvez utiliser `Seek` pour définir la position du pointeur de fichier.

Syntaxe de `Seek`

Seek #fileNumber, position
  • `fileNumber` est le numéro du fichier utilisé dans l’instruction `Open`.
  • `position` est une expression numérique qui spécifie la position à laquelle vous souhaitez déplacer le pointeur de fichier.

Exemple d’utilisation

Voici un exemple simple qui montre comment utiliser `Seek` pour lire et écrire à une position spécifique d’un fichier :

Sub UseSeekExample()
    Dim fileNumber As Integer
    Dim filePath As String
    Dim textLine As String

    filePath = "C:pathtoyourfile.txt"
    fileNumber = FreeFile ' Obtenir un numéro de fichier libre

    ' Ouvrir le fichier en mode Output pour écriture
    Open filePath For Output As #fileNumber
    ' Écrire des lignes de texte
    Print #fileNumber, "First Line"
    Print #fileNumber, "Second Line"
    Print #fileNumber, "Third Line"
    ' Fermer le fichier
    Close #fileNumber

    ' Ouvrir le fichier en mode Random pour lecture et écriture
    Open filePath For Random As #fileNumber

    ' Déplacer le pointeur sur la deuxième ligne
    Seek #fileNumber, 2
    ' Lire la ligne actuelle
    Line Input #fileNumber, textLine
    Debug.Print "Line at position 2: "; textLine ' Devrait afficher la deuxième ligne

    ' Réécrire la ligne à la position actuelle
    Seek #fileNumber, 2
    Print #fileNumber, "New Second Line"

    ' Fermer le fichier
    Close #fileNumber
End Sub

Conseils

  • Mode d’ouverture : Assurez-vous que le mode dans lequel vous ouvrez le fichier est compatible avec les opérations que vous souhaitez réaliser (lecture, écriture, etc.).
  • Gestion des erreurs : Ajoutez une gestion des erreurs pour traiter les cas où le fichier ne peut être ouvert ou d’autres problèmes d’E/S (Entrée/Sortie) peuvent survenir.
  • Numérotation des enregistrements : En mode Random, chaque enregistrement dans le fichier a une longueur fixe, déterminée par le len de la structure. La position donnée à Seek fait référence au numéro d’enregistrement.

Ainsi, l’instruction `Seek` vous permet de lire ou écrire à des positions précises dans un fichier, ce qui peut être extrêmement utile pour traiter des fichiers contenant des données structurées ou binaires.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project