Je n'ai pas regardé si il y avait encore un risque de doublon, mais voici un exemple de code qui fait ce que tu veux (Code tapé hors EDI, risque d'erreur) :
Dim lRnd As Random()=New Random()
Dim i as Integer
Dim lTmp as integer
Dim lLstNb As List(of Integer)= New List(of Integer)
'Nombre de Nombre à générer
Dim lMaxNb=5
Do While lLstNb.Count<lMaxNb
lTmp=lRnd.Next(1,49)
For i=0 to lLstNb.Count-1
If lLstNb(i)=lTmp Then
Continue Do 'Doublon, on rejette
End If
Next i
lLstNb.Add(lTmp) 'Pas de doublon, on prend
Loop
'Affichage
For i = 1 To 6
Me.Controls("LblNb" & i).Text = (lLstNb(i - 1)).ToString()
Next i
@NHenry : Est ce que tu peux me fournir un lien qui explique l'utilité de ce qui suit :
"1) Actives Option Strict et Oprion Explicit
2) Retires l'import automatique de l'espace de nom Microsoft.VisualBasic
(Pour les 2 premiers points, voir ma signature sur le forum)"
23 juil. 2012 à 09:23
Je n'ai pas regardé si il y avait encore un risque de doublon, mais voici un exemple de code qui fait ce que tu veux (Code tapé hors EDI, risque d'erreur) :
Dim lRnd As Random()=New Random()
Dim i as Integer
Dim lTmp as integer
Dim lLstNb As List(of Integer)= New List(of Integer)
'Nombre de Nombre à générer
Dim lMaxNb=5
Do While lLstNb.Count<lMaxNb
lTmp=lRnd.Next(1,49)
For i=0 to lLstNb.Count-1
If lLstNb(i)=lTmp Then
Continue Do 'Doublon, on rejette
End If
Next i
lLstNb.Add(lTmp) 'Pas de doublon, on prend
Loop
'Affichage
For i = 1 To 6
Me.Controls("LblNb" & i).Text = (lLstNb(i - 1)).ToString()
Next i
23 juil. 2012 à 02:29
22 juil. 2012 à 23:11
Toujours faillible :
1 2 3 3 4 5
Bol=True
1 2 3 1 4 5
Bol=False
i=i+1
1 1 2 3 4 5
Car une fois le nombre régénéré, tu passes à la position suivante sans controler les précédentes.
Concernant Option Explicit : http://msdn.microsoft.com/fr-fr/library/y9341s4f.aspx
Strict : http://msdn.microsoft.com/fr-fr/library/zcd4xwzs.aspx
Concernant l'espace de nom, c'est une rétro compatibilité avec du VB6, donc à éviter en .NET, ça n'apporte rien.
22 juil. 2012 à 20:27
"1) Actives Option Strict et Oprion Explicit
2) Retires l'import automatique de l'espace de nom Microsoft.VisualBasic
(Pour les 2 premiers points, voir ma signature sur le forum)"
Merci
22 juil. 2012 à 20:25
J'ai ajouté une boucle Do...Loop.
Cdt,
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.