Erreur avec FreeFile

Résolu
Cpcdos Messages postés 488 Statut Membre -  
Cpcdos Messages postés 488 Statut Membre -
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. Cpcdos Messages postés 488 Statut Membre 13
     
    Je précise c'est en visual basic 5
    0
  2. Cpcdos Messages postés 488 Statut Membre 13
     
    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
  3. Cpcdos Messages postés 488 Statut Membre 13
     
    j'ai la réponse de ma question XD
    0