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

Signaler
Messages postés
181
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
4 février 2011
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
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

Messages postés
181
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
4 février 2011

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
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 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