Comment parcourir un fichier texte en VB6

Fermé
hya - 4 janv. 2005 à 18:42
 Apophis - 6 avril 2010 à 23:57
Bonsoir

j'ecri un program en VB

J'ai cree un fichier texte fichier_ping.txt
je veux parcourir de fichier pour faire des traitements
mais mon program boucle infiniment dans la boucle do while EOF
voici le code.


Open "C:\fichier_ping.txt" For Input As #1

Do While Not EOF(1)
Line Input #1, ligne
If Len(ligne) <> 0 Then
rep = Mid(ligne,1, 7)
If (rep = "Reponse")

'----- les traitements

End If
End If
Loop ' fin tant que

Pouver vous m'aider

merci
A voir également:

3 réponses

Bonjour à tous!

Je sais qu'on est 5 ans plus tard, m'enfin, ce topic apparait assez vite dans les résultats des moteurs de recherche. Il pourrait donc être utile de solutionner le problème.

Pour ma part, il m'apparait deux soucis:

1) Le marqueur de non-éxécution (l'apostrophe): il bloque le programme dans la boucle car il est placé tout à gauche de la fenêtre du code! Il faut impérativement le décaler.

2) La condition "if" n'est pas complète. En effet, il manque simplement le "then".

Ces deux soucis bloquent le programme en plein traitement. Corrigez-les et ça tournera bien.


Correction:

Open "C:\fichier_ping.txt" For Input As #1

Do While Not EOF(1)

Line Input #1, ligne

If Len(ligne) <> 0 Then

rep = Mid(ligne,1, 7)

If (rep = "Reponse") then

'----- les traitements.

End If

End If

Loop ' fin tant que


PS: n'hésitez pas à bien aérer votre code. Ainsi, il est plus facile à lire et à travailler.
2
Hello Hya,

A première vue, ça me paraît pourtant bon tout ça.

Vu que le squelette de la boucle est bien, ça doit se passer dans "les traitements", non ?

Bonne chance...
Armojax.
0
Merci ,
j'ai lu ton indication,

Voici mon code de traitement de fichier texte.
Ce programme continu à boucler indefiniment dans la bouble dans le coucle tant que non fin de fichier Do while Not EOF(1)

Public Sub traitement()

Dim rep As String
Dim montab() As String
Dim tailleoctet As String
Dim tempsrep As String
Dim ttlive As String
Dim t As String
Dim som , nbre_echo As Integer
dim bd as double
dim connxion as boolean

Open "C:\fichier_ping.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, ligne
If Len(ligne) <> 0 Then
rep = Mid(ligne, 1,7)
If (rep = "Reponse") Then
montab = Split(ligne, " ")
tailleoctet = montab(4)
tempsrep = montab(5)
ttlive = montab(7)
temps = Split("tempsrep", "=")
t = temps(1)
som = som + Val(t)
End If
End If
Loop

If nbre_echo <> 0 Then
connexion = True
bp = som / nbre_echo
octets = tailleoctet
ttll = ttlive
Else
connexion = False
End If

Close #1

End Sub

Je n'ai pas pu deceler la faille

Merci
0
Hello Hay,

Eh bien ça se corse.
Je me suis fait un petit fichier texte et ai déroulé ton code : pas de boucle en vue, je sors sans PB.
Evidemment, je n'ai pas tes données à toi, alors... Mais pour moi le boucle est bonne.

Du côté des définitions de tes variables, fais gaffe : Quand tu mets, par exemple :

Dim som , nbre_echo As Integer

seul nbre_echo est défini comme Integer.
Si tu veux mettre plusieurs variables dans un seul Dim, tu dois préciser pour chaque variable :

Dim som As Integer , nbre_echo As Integer

Tu as des variables qui ne servent à rien... à cause d'erreurs de frappe (par exemple, dans tes Dim, il manque le "e" de connExion.

Tu as intérêt à utiliser , en tête de module, "Option Explicit". Comme ça, tu es obligé de définir tout correctement.

En conclusion, je n'ai pas la réponse à ton PB.
Désolé. Regarde du côté de tes données...

Armojax.
0