Erreur avec FreeFile

Résolu
Bonjour,
j'ai un problème , je voudrais savoir comment vider freefile car moi j'utilise un programme pour mettre dans une variable , une ligne dans un fichier :

Module :

Public Function ReadLine(Filename As String, Ln As Integer, ByRef Result As String) As Boolean
Dim FID As Long
FID = FreeFile
Dim i As Integer, CurLine As String
On Error GoTo fin
Open Filename For Input As FID
While EOF(FID) = False
i = i + 1
Line Input #FID, CurLine
If Ln = i Then
Result = CurLine
Exit Function
End If
Wend
Close FID
ReadLine = True
fin:
End Function


Form :

Call ReadLine("c:\fichier.txt" , {ligne} , {variable} )

et le problème c'est quand je répète une dizaine fois cet opération , un message d'erreur dit : erreur d'execution 67 : Trop de fichiers

cet erreur est surligné pour ça :

FID = FreeFile

donc j'ai essayé de regarder le contenue de freefile dans un msgbox :

msgbox freefile

et là c'est msgbox freefile qui fait l'erreur !!

car avant qu'il est l'erreur , freefile contenait je crois '157'

et après .... plus rien marche

Faut t-il remettre a zéro freefile ?? si oui comment faire ??

SVP c'est urgent !! merciii



--
Microsf01 Cpcdos sf01 Favier Sébastien 01

3 réponses

  1. Je précise c'est en visual basic 5
    0
    1. C'est bon j'ai trouvé

      dans le module :

      Avant :

      Public Function ReadLine(Filename As String, Ln As Integer, ByRef Result As String) As Boolean
      Dim FID As Long
      FID = FreeFile
      Dim i As Integer, CurLine As String
      On Error GoTo fin
      Open Filename For Input As FID
      While EOF(FID) = False
      i = i + 1
      Line Input #FID, CurLine
      If Ln = i Then
      Result = CurLine
      Exit Function
      End If
      Wend
      Close FID
      ReadLine = True
      fin:
      End Function


      Après :

      Public Function ReadLine(Filename As String, Ln As Integer, ByRef Result As String) As Boolean

      Dim i As Integer, CurLine As String
      On Error GoTo fin
      Open Filename For Input As #1
      While EOF(1) = False
      i = i + 1
      Line Input #1, CurLine
      If Ln = i Then
      Result = CurLine
      Exit Function
      End If
      Wend
      Close #1

      ReadLine = True
      fin:
      End Function


      (j'ai enlevé tous ce qui vient de freefile ...) voilà !!!
      0
      1. j'ai la réponse de ma question XD
        0