Comment parcourir un fichier texte en VB6

hya -  
 Apophis -
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

3 réponses

  1. Apophis
     
    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
  2. Armojax
     
    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
    1. hay
       
      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
  3. Armojax
     
    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