userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011
-
29 juil. 2010 à 09:19
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
30 juil. 2010 à 12:13
Bonjour à tous,
un petit bout de script VBS me donne du fil à retordre
Le voici :
Dim Diap(r,2)
c=-1
While Not f.AtEndOfStream
c = c + 1
msgbox("c=" & c)
chaine=f.Readline
MonTab(c) = Split(chaine, ";")
Diap(c,0)=MonTab(c)(0)
Msgbox(Diap(c,0))
Diap(c,1)=MonTab(c)(1)
Diap(c,2)=MonTab(c)(2)
Wend
Ce code devrait me permettre de stocker les donner d'un fichier txt selon un tableau à 3 colonnes(fixe) et r+1 lignes.
Mon 1er souci est d'abord que lors de la déclaration de mon tableau, il n'accepte pas ma variable r, n'est ce pas possible ? (r est un entier)
Mon second souci est le suivant : je fais un test en remplaçant le r par 1 (tableau à 2 lignes).
je vois ensuite c=0, la valeur de ma première ligne premire colonne, c=1 puis plus rien, alors que je devrais voir 2nde ligne colonne 1.
Sur le navigateur l'erreur me dit :"Indice en dehors de la plage :'c'" et c'est relatif à la ligne suivante :
MonTab(c) = Split(chaine, ";")
Et là comprend pas.
Merci de votre aide.
BR
USERRRQI115
Simple user
Great brain
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 30 juil. 2010 à 12:13
Bonjour le Forum,
Deux exemples avec un fichier tableau.txt qui contient
1;11;111
2;22;222
3;33;333
Option Explicit
Const MyFile = "D:\tableau.txt"
Dim objFso, objTextStream, arrLine, liste, imax, i
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFso.OpenTextFile(MyFile, 1)
Do While Not ObjTextStream.AtEndOfStream
arrLine = Split(objTextStream.ReadLine,";")
imax = imax + 1
ReDim Preserve Tableau(3, imax)
Tableau(1, imax) = arrLine(0)
Tableau(2, imax) = arrLine(1)
Tableau(3, imax) = arrLine(2)
Loop
objTextStream.Close
Set objTextStream = Nothing
Set objFso = Nothing
For i=1 To imax
liste = liste & vbCrLf & Tableau(1, i) & vbTab &_
Tableau(2, i) & vbTab & Tableau(3, i)
Next
MsgBox liste,,"Exemple 1"
Option Explicit
Const MyFile = "D:\tableau.txt"
Dim objFso, objTextStream, i, liste
ReDim arrLine(0)
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFso.OpenTextFile(MyFile, 1)
Do While Not ObjTextStream.AtEndOfStream
ReDim Preserve arrLine(UBound(arrLine) + 1)
arrLine(UBound(arrLine)) = objTextStream.ReadLine
Loop
objTextStream.Close
Set objTextStream = Nothing
Set objFso = Nothing
For i=1 To UBound(arrLine)
liste = liste &vbCrLf& Split(arrLine(i), ";")(0) _
&vbTab& Split(arrLine(i), ";")(1) _
&vbTab& Split(arrLine(i), ";")(2)
Next
MsgBox liste,,"Exemple 2""