Erreur avec FreeFile

Résolu
Cpcdos Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   -  
Cpcdos Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   -
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



3 réponses

Cpcdos Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   13
 
Je précise c'est en visual basic 5
0
Cpcdos Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   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
Cpcdos Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   13
 
j'ai la réponse de ma question XD
0