Probleme : Variable de controle de boucle 'for' incorrecte

sanzo666 Messages postés 2 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 8 décembre 2008 - 5 déc. 2008 à 14:25
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 - 8 déc. 2008 à 19:09
Bonjour,

j'ai un petit problème avec un script qui vise à trier dans une liste de doublons les personnes (mise en argument dans le script) en ayant eux-même dans leur répertoire personnel et enfin de créer un fichier texte par personne avec les liste des doublons.
Mais voila Windows script host me met une jolie erreur variable de contrôle de boucle for incorrecte ligne 145.... et je vois pas ou se trouve l'erreur si quelqu'un peut m'éclaircir .

voila le bout de script concerné:
127      if temp(2,0)=t3(2,y) then
128             temp(0,y-x)=t3(0,y)
129             temp(1,y-x)=t3(1,y)
130             temp(2,y-x)=t3(2,y)
131             temp(3,y-x)=t3(3,y)
132             temp(4,y-x)=t3(4,y)
133             else for u=0 to arg.count
134                            u=u+1
135                            redim preserve temp(4,y-(x+1))
136                            redim t4(y-(x+1))
137                            for e=0 to y-(x+1) 'Création d'un tableau avec un doublon'
138                                t4(e)= "nom="&temp(0,e)&"    chemin="&temp(1,e)&"    n° de doublon="&temp(2,e)&"    taille(octet)="&temp(3,e)&"    date de modification="&temp(4,e)
139                                e=e+1
140                            next
141                            for each w in t(4)
142                                    if InStr(t4(w), "personnes")<>0 then 'test si présence de dossier perso'
143                                       if InStr(t4(w), arg(u))<> 0 then 'test si personne mentionnée dans arguments'
144                                          path = Replace(path, " copie.txt", " doublons "&arg(u)&".txt")
145                                          set fichier= fso.OpenTextFile(path, 8, true)                                   
146                                         for z=0 to y-(x+1) 'création du fichier'
147                                             fichier.WriteLine t4(z)
148                                        next
149                                        fichier.WriteLine " "
150                                         fichier.Close
151                                      end if
152                                  end if
153                          next
154                           x=y-1
155                           y=count
156                            redim temp(4,count)
157                   next
158      end if

merci d'avance.

5 réponses

cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
5 déc. 2008 à 19:24
Bonsoir,
Essai de scinder tes valeurs et vois si l'erreur est toujours sur le for ou sur le calcul des valeurs :

dim i integer
i= y-(x+1)
for z=0 to i        'création du fichier'

thierry la fronde
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
6 déc. 2008 à 04:54
Bonjour

Ne modifie pas tes variables de contrôle de boucle

133   For u= 0 To arg.count
134        <strike>u=u+1</strike>

et,

137  For e =0 to y-(x+1)
139       <strike>e=e+1</strike>

Amicalement
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
6 déc. 2008 à 12:20
très juste Orohena, je n'avais pas vu..
 d'ailleurs si on programme avec rigueur, on devrait érire
for u=0 to arg.count
..
Next u

l'utilisation des incréments de variables est pour les boucles While, do .. while ....

thierry la fronde
0
sanzo666 Messages postés 2 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 8 décembre 2008
8 déc. 2008 à 09:06
Ha oui en effet merci,pour le u  j'avais besoin qu'il commence à 1 mais c'est plus correct de faire for u =1 to arg.count ... Plus de probleme de variable sur ma boucle, merci bien ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
8 déc. 2008 à 19:09
Salut zanzo666

Content que ton problème soit réglé.

Il n'y a pas de méthode plus correcte qu'une autre pour balayer un tableau ou une collection en fonction de la propriété Count.

Personnellement j'utilise celle-ci, qui est assez couramment employée

For i = 0 To collection.Count - 1
   element = collection(i)
Next i

Mais bon, si tu préfères partir de 1, il n'y a pas de souci. Dans ce cas, la boucle devient :

For i = 1 To collection.Count
   element = collection(i - 1)
Next i

Amicalement
0
Rejoignez-nous