Boucle dans Boucle en VBS

Résolu
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
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. 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
    1. 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
      1. 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
        1. 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
        2. @TheAhmedOK 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
      2. 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
        1. J'obtient la valeur "2"

          ?????????????
          0
      3. 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
        1. OK tous semble fonctionné maintenant je te remercie pour ton aide

          @ bientot
          0
        2. @shenron69Encore 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
        3. @shenron69si si ca marche...

          Essaye de marquer la discussion comme résolu ;)
          0
        4. @TheAhmedOK 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
        5. @shenron69la je te suis pas, donne un exemple de script et qu'est ce que tu veux faire
          0
      4. 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
        1. Un peut d'aide svp
          0
          1. 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
        2. Je ne vois pas la résolution du problème... Tu t'en es sorti comment ?
          0