Boucle dans Boucle en VBS

Résolu
shenron69 -  
bezourox Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   -
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

TheAhmed
 
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
shenron69
 
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
shenron69
 
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
TheAhmed
 
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
 
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
TheAhmed
 
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
shenron69
 
J'obtient la valeur "2"

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

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

Posez votre question
TheAhmed
 
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
shenron69
 
OK tous semble fonctionné maintenant je te remercie pour ton aide

@ bientot
0
shenron69 > shenron69
 
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
 
si si ca marche...


Essaye de marquer la discussion comme résolu ;)
0
shenron69 > TheAhmed
 
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
 
la je te suis pas, donne un exemple de script et qu'est ce que tu veux faire
0
shenron69
 
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
shenron69
 
Un peut d'aide svp
0
TheAhmed
 
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 730 Date d'inscription   Statut Membre Dernière intervention   143
 
Je ne vois pas la résolution du problème... Tu t'en es sorti comment ?
0