Boucle avec VB

Bonjour,
Avec VB6 comment je peux résoudre le problème suivant : trois listes A,B et C la liste A comprend des réels de 1 à 10 (incrémentation) et la liste B comrend les réels suivants (2,3,6,9) , comment renvoyer les éléments dans la liste C les éléments manuquants c-a-d (1,4,5,7,8 et 10) Merci
Configuration: Windows 2000
Internet Explorer 6.0

71 réponses

Résumé de la discussion

Le problème consiste à déterminer, en VB6, les éléments de A qui ne figurent pas dans B et les transférer dans C, comme dans l’exemple où A contient 1 à 10 et B contient 2,3,6,9. Une solution consiste à utiliser deux boucles : parcourir A puis, pour chaque élément, comparer avec B et, si absent, l’ajouter à C. Des échanges suggèrent aussi d’éviter les chaînes et de déclarer A et B comme tableaux numériques (Integer) et de bien initialiser les index afin d’éviter les erreurs. En cas d’ordre différent entre A et B ou de nécessité de meilleures performances, une approche robuste peut consister à trier A puis réaliser la différence avec B, ou à utiliser des structures associatives.

Bobot (l’IA à votre service)
  1. C'est pas le cas, car il faut bien saisir formulaire vièrge en recuperant ces numeros(n°,classe,annee scolaire,adresse n° de tel..., un par un.
    1. Bonjour, je vais merci ...

      Tu veux dire que tu veux récuperer les numéros manquants dans un listBox et ensuite faire des insert dans la table de ta base de données ? Si c'est le cas, pourquoi ne pas le faire en même temps que ton tri ? il suffit de faire la fonction qui va bien pour ça...
      1. Bonjour POLUX31,
        Comment tu vas bien ? je suis entrain de terminer le programme concernant ma base de donnée, après avoir terminé les numéros manuquants, envie de les remplir à partir d'un form contenant un listbox qui génére ces numéros.
        1. n'oublie pas de mettre résolu si tu n'as plus de blème ... merci ;o)
          1. Merci, c'est avec plaisir que je l'ai fait.

            Bon courage à toi

            ;o)

            Polux
            1. non je suis pas gaté, mais je trouve pas la concentration, mais toi très gentil et très généreux, merci et je m'excuse pour le dérangement.
              NAGNAG
              1. je vais encore faire une exception pour toi ... décidemment tu es gaté ... ma proposition est assez simpliste et il existe surement un moyen plus conventionnel. Mais je suis en manque d'inspiration ... :o)

                Public Function SearchTable()

                Dim i As Integer

                i = ReturnI(Qr.Fields(0))

                While Not Qr.EOF

                If i <> Qr.Fields(0) Then
                lstaud.AddItem i
                Qr.MovePrevious
                End If
                Qr.MoveNext
                i = i + 1
                Wend

                End Function

                Public Function ReturnI(ByVal ind As Integer) As Integer
                Dim strI As String
                Dim lg As Long
                Dim c As String

                strI = CStr(ind)
                lg = Len(strI)

                If Right(strI, 1) <> "1" Then
                ReturnI = CInt(Left(strI, lg - 1) & 1)
                Esle
                ReturnI = ind
                End If

                End Function
                1. car x c'est variable qu'on peut le connaître qu'au cours de l'exect x=1 ou 101 ou 201 ......, non ?
                  1. pourquoi passer deux paramètres ? et j'aimerai voir à quel moment tu appelles ta fonction ... ?
                    • 1
                    • 2
                    • 3
                    • 4