[Ajouter ligne à une position précise] en VB

Bonjour,

J'ai créer unr procédure permettant d'ajouter une ligne dans un fichier séquentiel à un index donné :

Public Sub AjouterLigne(Fichier As String, IndexLigne As Integer, Texte As String)
Dim numfichier As Integer
numfichier = FreeFile
Dim collect As New Collection
Dim lignetemporaire As String
Dim i As Integer

Open Fichier For Input As #numfichier
    While Not EOF(numfichier)
        Line Input #numfichier, lignetemporaire
        collect.Add lignetemporaire
    Wend
Close #numfichier

Open Fichier For Output As #numfichier
    For i = 1 To collect.Count
        Print #numfichier, collect.Item(i)
        If i = IndexLigne Then
            Print #numfichier, Texte
        End If
    Next i
Close #numfichier
End Sub


Mais juste avant l'écriture dans le fichier, le débogger indique que el fichier est déjà ouvert malgrés l'instruction:

close #numfichier


Quelqu'un peut-il m'aider s'il vous plait ?

Merci beaucoup

2 réponses

  1. Je remonte le sujet dans l'espoir que...
    0
    1. Contributeur
      Bonjour,
      Les objets collection ne sont valable qu'avec des modules de classe et dans ton exemple je ne pense pas que ce soit le cas (je n'ai pas tout ton code)
      de plus, il ne suffit pas de créer une instance d'une collection, il faut l'assigner par un nom...
      Set Colect = ???
      Je pense que l'erreur vient de là.
      Remplace new collection par un tableau
      Dim TB() as string
      Open Fichier For Input As #numfichier
          While Not EOF(numfichier)
              Redim Preserve TB(i)
              Line Input #numfichier,TB(i)
              i = i + 1
          Wend
      Close #numfichier

      Ou alors donne plus d'explications!
      A+
      0