Boucle dans Boucle en VBS

Résolu/Fermé
shenron69 - 10 mars 2009 à 10:55
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 27 mars 2012 à 15:13
Bonjour,

Je cherche à lire ligne par ligne le contenu d'un fichier A puis vérifier que dans l'une des lignes d'un fichier B le contenu d'une des ligne du fichier A est présent ou non.

Lire ligne par ligne un fichier pas de Pb.
Chercher une valeur dans un fichier pas de Pb
Mais lire chaque ligne d'un fichier A et chercher dans un fichier B alors la PB.

Je ne sais pas si j'ai été suffisamment claire.
N'hésite pas à me poser des questions.

Merci d'avance pour votre aide

8 réponses

Euuh je ne sais pas mais c'est quoi le pb ?? En tt ka, tu voudrais faire cela :

(Je n'ecrit pas cela dans u language bien spécifique mais juste pour l'idée)

While Not EOF(A) do
Chaine=LireLigne(A)
While NotEOF(B)
Chaine2=LireLigne(B)
if (chaine=Chaine2) then trouve=true
End

End
0
En Gros oui

Mon pb sais que je n'arrive pas à chercher la 2eme 3eme 4eme etc ligne de mon fichier A dans mon fichier B

Merci d'avance
0
Voici mon code:

Mon pb, il n'y a que la premier ligne du fichier test.ini qui est lu.
Merci d'avance pour votre aide.


Dim fso,
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjTextStream = Fso.OpenTextFile("c:\test\test.ini", 1, False)
Set ObjTextStream2 = Fso.OpenTextFile("c:\test\test.txt", 1, False)

Do While Not ObjTextStream.AtEndOfStream
Reject = Split(ObjTextStream.ReadAll, vbCrLf)
For i = 0 To UBound(Reject)

Do While Not ObjTextStream2.AtEndOfStream
Sources = Split(ObjTextStream2.ReadAll, vbCrLf)
For t = 0 To UBound(Sources)

iPos = InStr(1, Sources(t), Reject(i))
If iPos <> 0 Then
MsgBox "La valeur : "& Reject(i) &" à été trouver dans la ligne "& Sources(t)
end if

next
Loop
Next
Loop
0
UJe vois un pb avec ces deux ligne, je ne sais pas, je n'ai pas compilé ca mais une question :

Do While Not ObjTextStream.AtEndOfStream
Reject = Split(ObjTextStream.ReadAll, vbCrLf)

Avec la ligne, tu lit tout le fichier tet tu le décompose avec "vbCrLf" qui le retour chariot. Ainsi, Reject est un tableau qui contient toutes les lignes du fichier et donc, il né plus nécessaire de mettre le Do while. de meme pour la lecture du deixème fichier

essaye
0
shenron69 > TheAhmed
10 mars 2009 à 12:05
OK j'ai supprimer les lignes
Do While Not ObjTextStream.AtEndOfStream
et
Do While Not ObjTextStream2.AtEndOfStream

maintenant il cherche tjrs la premier ligne de mon fichier A dans mon fichier B mais quand il veut passer à la ligne 2 de mon fichier A il me sort l'erreur :
Erreur : L'entrée dépasse la fin du fichier
code : 800A009E

Que signifie cette erreur?

Merci d'avance pour ton aide.
0
juste pr essayer un truc,

peut tu rajouter msgbox UBound(Rejct) après :

Reject = Split(ObjTextStream.ReadAll, vbCrLf)

pour donner

Reject = Split(ObjTextStream.ReadAll, vbCrLf)
msgbox UBound(Rejct)


Ca donne koi?
0
J'obtient la valeur "2"

?????????????
0

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

Posez votre question
Ok je voulais vérifier qu'il ya eu bel et bien une lecture de fichier qui contient normalement 3 ligne mais je retrouve une ptite erreur dans ce lignes

Reject = Split(ObjTextStream.ReadAll, vbCrLf)
For i = 0 To UBound(Reject)

Sources = Split(ObjTextStream2.ReadAll, vbCrLf)

Ceci va redécomposer a chaque fois le deuxième fichier essaye pluto d'inverser :

Reject = Split(ObjTextStream.ReadAll, vbCrLf)

Sources = Split(ObjTextStream2.ReadAll, vbCrLf)

For i = 0 To UBound(Reject)
...

Juste une question : Est ce que ta enlevé les Loop à la fin???

Ca donne quoi?
0
OK tous semble fonctionné maintenant je te remercie pour ton aide

@ bientot
0
shenron69 > shenron69
10 mars 2009 à 13:19
Encore une petite question:

i=le numero de la ligne
si dans telle condition je veux passer à la ligne suivante comment faut il faire svp?

Exemple : i=i+1 mais cela ne fonctionne pas?

Merci d'avance
0
TheAhmed > shenron69
10 mars 2009 à 13:28
si si ca marche...


Essaye de marquer la discussion comme résolu ;)
0
shenron69 > TheAhmed
10 mars 2009 à 13:58
OK je vais mettre Résolu mais j'ai encore une petite question.

En faite je veut faire i = i + 1 ( C bon ca marche ) mais en reprenant le script du début avec la valeur i + 1

Merci d'avance
0
TheAhmed > shenron69
10 mars 2009 à 13:59
la je te suis pas, donne un exemple de script et qu'est ce que tu veux faire
0
Je reprend je cherche a faire :

Dans un fichier A il y a les valeurs :
toto
tata
tutu
Dans un fichier B il y a les valeurs :
toto
tonton
cucu
mumu
pupu
tutu

Je prend la premiere valeur du fichier A et je cherche si elle est présente dans mon fichier B.
Exemple : toto => présent dans mon fichier B alors je test la valeur suivante.
Exemple 2 : tata => non présent dans mon tous mon fichier B alors j'écrit tata dans un fichier *.txt.

Merci d'avance pour ton aide
0
Un peut d'aide svp
0
En fait j'ai pas réussi à comprendre, dzl

Je ne comprend l'utuilité quand tu di "je test la vlaeur suivante", mais je vois qu'elle testé automatiquement puisqu'elle est dans la boucle For

non?
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
27 mars 2012 à 15:13
Je ne vois pas la résolution du problème... Tu t'en es sorti comment ?
0