IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

probleme sur boucle et pas simple [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 65
    Points : 47
    Points
    47
    Par défaut probleme sur boucle et pas simple
    bonjour à tous
    j'ai des articles qui ont un n°(12 chiffres) et une cle2 (chifrres)je voulais faire un boutton pour retrouver 1 chiffre manquant à partir du premier bits de la cle

    j'ai pas reussi a retourner la formulle mathematique donc j'ai fait une boucle avec une sortie quand on trouve le bon resultat (le premier bits de la cle)

    mon idee et de faire cette boucle remplacer le chiffre inconnue que j'ai appeler ? par 0 et me servir de i du compteur pour rajouter un chiffre à chaque fois et quand mes 2 valeurs corresponde je sort de la boucle


    le probleme
    ca marche pas bizar
    le plus fous il faut que je valide au moins 8 fois sur mon msgbox pour en sortir et ravoir mon form





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     'recherche d'un chiffre 
     
            'on isole le 1° bit de la cle et on le met dans x 
            Dim x As Integer
            x = Mid(TextBox3.Text, 1, 1)
     
            'traitement de donnée rentre avec ? on le remplace par 0 pour pas coinser le tout 
            Dim cbehs As String
            Dim cbehs1 As String
            cbehs = TextBox1.Text
            cbehs1 = Replace(cbehs, "?", "0")
     
     
            'lecture du code
            Dim a As String
            Dim b As String
            Dim c As String
            Dim d As String
            Dim m As String
            Dim f As String
            Dim g As String
            Dim h As String
            Dim k As String
            Dim l As String
            Dim o As String
            Dim n As String
     
     
            Dim i As Integer
            For i = 0 To 9 Step 1
     
                'calcule de la clé 
                a = Mid(cbehs1, 1, 1)
                b = Mid(cbehs1, 2, 1)
                c = Mid(cbehs1, 3, 1)
                d = Mid(cbehs1, 4, 1)
                m = Mid(cbehs1, 5, 1)
                f = Mid(cbehs1, 6, 1)
                g = Mid(cbehs1, 7, 1)
                h = Mid(cbehs1, 8, 1)
                k = Mid(cbehs1, 9, 1)
                l = Mid(cbehs1, 7, 1)
                o = Mid(cbehs1, 8, 1)
                n = Mid(cbehs1, 9, 1)
     
     
                'calcule de la clé 1° bits
                Dim som1 As Integer
                Dim som11 As Integer
                Dim som12 As Integer
                Dim som13 As Integer
     
                'calcul de la cle avec i en plus
                som1 = (Val(a) + Val(b) + Val(c) + Val(d) + Val(m) + Val(f) + Val(g) + Val(h) + Val(k) + Val(l) + Val(o) + Val(n) + i)
                som11 = Int(som1 / 11)
                som12 = som11 * 11
                som13 = som1 - som12
     
                'boucle de recherche quand x a la meme valeur que som13 je sort 
                If x = som13 Then Exit For
     
                'affichage du resultat 
                MsgBox("Chiffre trouvé    " & i)
     
                'on continue
            Next i
     
     
     
     
        End Sub
    merci

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2010
    Messages : 132
    Points : 166
    Points
    166
    Par défaut
    Essai de reformuler ton problème avec des exemples. Donne des exemples de clef et de n° d'articles sans quoi on ne comprend pas ce que tu veux extraire. Donne un exemple qui fonctionne (devrait conduire à Exit For) et un exemple qui fonctionne pas.

    Ensuite, comme ton exit for se trouve dans un bloc if, si la condition du bloc n'est pas vérifiée, l'instruction suivante est exécutée, à savoir la message box; ce qui veut dire que si tu as n articles et que celui que tu cherches est le k-ème, tu va afficher k-1 fois la message box... et quand je vois tes calculs de som1, som11, som12, je suis même surpris que tu n'ais pas n fois la message box...

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,
    Sans chercher a comprendre ce que tu veux faire, il me semble que tu as une erreur pour l, o, n
    Citation Envoyé par biboulou Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                f = Mid(cbehs1, 6, 1)
                g = Mid(cbehs1, 7, 1)
                h = Mid(cbehs1, 8, 1)
                k = Mid(cbehs1, 9, 1)
                l = Mid(cbehs1, 7, 1)
                o = Mid(cbehs1, 8, 1)
                n = Mid(cbehs1, 9, 1)
    Ce devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                l = Mid(cbehs1, 10, 1)
                o = Mid(cbehs1, 11, 1)
                n = Mid(cbehs1, 12, 1)
    Essaye déjà avec ça.
    A+, Hervé.

  4. #4
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 65
    Points : 47
    Points
    47
    Par défaut
    merci pour vos reponses en faite il y avait 2 problemes que vous avez bien identifies chaqu'un 1
    merci encore
    amicalement a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Petit probleme sur boucle FOR
    Par Spurius dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/04/2010, 14h59
  2. [AC-2007] Petit probleme sur boucle FOR
    Par Spurius dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/04/2010, 11h04
  3. [ODBC] Probleme sur boucle [Edit]
    Par Xenon03 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 14/10/2009, 15h09
  4. Probleme sur boucle
    Par Xenon03 dans le forum Langage
    Réponses: 4
    Dernier message: 14/10/2009, 10h20
  5. Probleme de boucle (rigolez pas !)
    Par Slumpy dans le forum VB.NET
    Réponses: 9
    Dernier message: 12/06/2007, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo