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

Fermé
Utilisateur anonyme - 2 déc. 2008 à 11:43
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 3 déc. 2008 à 14:00
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
A voir également:

2 réponses

Utilisateur anonyme
3 déc. 2008 à 13:15
Je remonte le sujet dans l'espoir que...
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
3 déc. 2008 à 14:00
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