[Catégorie modifiée VB6 --> VBS] VBSCRIPT + TABLEAU 2D PLEASE HELP

userrrqi115 Messages postés 181 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 4 février 2011 - 29 juil. 2010 à 09:19
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 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

2 réponses

userrrqi115 Messages postés 181 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 4 février 2011
29 juil. 2010 à 09:25
Hello,
Je crois que ce site a des ondes positives, j'ai juste ajouté un Redim Montab(c):

chaine=f.Readline
 redim Montab(c)
 MonTab(c) = Split(chaine, ";") 

Donc mon 2nd soucis est ok, reste le 1er
BR
USERRRQI115
Simple user
Great brain
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
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""


jean-marc
0
Rejoignez-nous