gefil63
Messages postés9Date d'inscriptionmardi 3 octobre 2006StatutMembreDernière intervention 1 novembre 2006
-
31 oct. 2006 à 23:18
gefil63
Messages postés9Date d'inscriptionmardi 3 octobre 2006StatutMembreDernière intervention 1 novembre 2006
-
1 nov. 2006 à 14:59
Bonjour à tous
je bute sur le PB suivant et comme je suis a la bourre j'ai pris la version
brute mais pas mieux ...
j'essaye de lire un fichier qui peut avoir un nombre lignes quelqonques cidessous
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
"0561342011121","24/10/2006","19:00:39","01361302111714","24/10/2006","23:25:47",4,25,8,1
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
Seules les 4 dernieres valeurs entre virgules m'interresse pour cela
Dim tabtrait(100) As String
employ3 = "c:\point\toto.txt"
Dim dureerepas0() As String
Dim dureerepas1() As String
Dim dureerepas2() As String
Dim dureerepas3() As String
Dim dureerepas4() As String
Dim tabresulat(20, 20) As Integer
'je lie le fichier employ3 et mets ligne a ligne dasn "tabtrait"
Open employ3 For Input As #5
i = -1
While Not EOF(5)
i = i + 1
Line Input #5, tabtrait(i)
Wend
Close #5
'je split chaque ligne et affecte a un tableau "dureerepasX" (j'ai essaye d'incrementer l'indice de "dureerepas" mais cela bugé un max donc j'ai declarer x variables tableau , la honte je sais, mais fallait que ça avance, enfin vous connaissez le PB, comme il reste un peu de T je reviens sur mes solutions pas belles)
dureerepas0 = Split(tabtrait(0), ",")
dureerepas1 = Split(tabtrait(1), ",")
dureerepas2 = Split(tabtrait(2), ",")
dureerepas3 = Split(tabtrait(3), ",")
dureerepas4 = Split(tabtrait(4), ",")
de chaque "dureerepasX" contenant une ligne splité j'en extrait les 4 derniers carateres
et les transforme en numerique(j'ai des calculs a faire dessus) et les affecte dasn un tableau a deux dimensions
Dans ces conditions lorsque je lance le prog j'ai un message OUT of RANGE
sur la ligne ci dessous. Si mon fichier contient le nombre de ligne attendu(5 dasn l'exemple) pas de PB ça marche...
tabresulat(0, 0) = Val(dureerepas0(6))
cs_wape
Messages postés262Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention19 décembre 201012 1 nov. 2006 à 08:28
Bonjour,
Essaye qqch du genre :
Dim tabtrait(100) As String
employ3 = "c:\point\toto.txt"
Dim tabresulat(100, 3) As Integer
Open employ3 For Input As #5
i = -1
While Not EOF(5)
i = i + 1
Line Input #5, tabtrait(i)
For j = 0 To 3
tabresulat(i, j) = Val(Split(tabtrait(i), ",")(j + 6))
Next j
Wend
Close #5
'Vérification du résultat
For j = 0 To i
For k = 0 To 3
MsgBox tabresulat(j, k)
Next k
Next j
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 1 nov. 2006 à 09:19
Bonjour à tous....
Petite question:
j'essaie de lire un fichier qui peut avoir un nombre de lignes quelconques ci-dessous:
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
"0561342011121","24/10/2006","19:00:39","01361302111714","24/10/2006","23:25:47",4,25,8,1
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
"0561342011121","24/10/2006","19:00:39","01361302111714","24/10/2006","23:25:47",4,25,8,1
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
la première ligne se termine par une ","
la ligne suivante ne se termine pas pas une ","
la ligne suivante se termine par une ","
la ligne suivante ne se termine pas pas une ","
...
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 1 nov. 2006 à 10:24
Re,
Avec le code ci-dessous, j'obtiens:
ligne1 "14:05:28",2,15,14
ligne2 4,25,8,1
ligne3 "14:05:28",2,15,14
ligne4 4,25,8,1
Option Explicit
Dim Fso, Path, Fic1
Dim ObjTextStream, strtmp, i, j, imax, ligne
Const ForReading = 1
Path = "d:"
Fic1 = "test1.txt"
imax = 0
j = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjTextStream = Fso.OpenTextFile(Path & Fic1, ForReading)
Do While Not ObjTextStream.AtEndOfStream
j = j + 1
strtmp = split(ObjTextStream.ReadLine, ",")
For i = 0 to Ubound(strtmp)
imax = imax + 1
ReDim Preserve Tableau(1, imax)
Tableau(1, imax) = strtmp(i)
Next
If Tableau(1, imax) = "" Then
MsgBox Tableau(1, imax-4) & "," & Tableau(1, imax-3) & "," &_
Tableau(1, imax-2) & "," & Tableau(1, imax-1) ,,"contenu du tableau de la ligne " & j
Else
MsgBox Tableau(1, imax-3) & "," & Tableau(1, imax-2) & "," &_
Tableau(1, imax-1) & "," & Tableau(1, imax),,"contenu du tableau de la ligne " & j
End If
Loop
MsgBox "Nbre de lignes lues: " & j
ObjTextStream.Close
Set Fso = Nothing
Set ObjTextStream = Nothing