A voir également:
- Comment parcourir un fichier texte en VB6
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment faire un fichier pdf - Guide
- Comment ouvrir un fichier docx ? - Guide
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.
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.
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.
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.
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
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
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.
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.