Les Snippets

Connexion

Récupérer aléatoirement une valeur unique d'un tableau

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 24/03/2007 18:44:29 et initié par PCPT [Liste]
Date de mise à jour : 06/05/2008 00:55:43
Vue : 10192
Catégorie(s) : Chaîne de caractères, Divers
Langages dispo pour ce code :
- VB6, VBA
- C# 1.x, C# 2.x
- Java
- Python
- Javascript
- VB 2005
- Voir tous les langages pour ce code snippet



Langage : VB6 , VBA
Date ajout : 24/03/2007
Posté par PCPT [Liste]
DateMAJ : 06/05/2008
Function GetSingleValue(ByRef aArr() As String, sResult As String) As Boolean
    If UBound(aArr) = Then
'        reste  rien
        GetSingleValue = False
    Else
        GetSingleValue = True
        
'       on  récupère  un index
        Dim Index As Long
        Index = Int((UBound(aArr) * Rnd) + (LBound(aArr) + 1))
'       on récupère  la  valeur
        sResult = aArr(Index)
'        on  écrase la position par la dernière valeur et on supprime la  dernière  position
        aArr(Index) = aArr(UBound(aArr))
        ReDim Preserve aArr(UBound(aArr) - 1)
    End If
End Function

'    EXEMPLE  D'UTILISATION (nécessite un bouton et une textbox)
Option Explicit
Dim aMyArray() As String 'attention, la premier index (0 ici) ne sera pas utilisé
'
'
Private Sub Form_Load()
'   applique le facteur "aléatoire"
    Randomize Timer
    
'   redimension et remplissage du tableau
    Dim As Long
    ReDim aMyArray(To 10)
    For i = LBound(aMyArray) + To UBound(aMyArray)
        aMyArray(i) = "chaîne [" CStr(i) & "]"
    Next i
'   pour le test....
    Text1.Width = 2895
    Text1.Text = vbNullString
End Sub
'
'
Private Sub Command1_Click()
    Dim sRet As String
    If GetSingleValue(aMyArray, sRet) Then
        Text1.Text = sRet
    Else
        Text1.Text = "Toutes les valeurs ont été piochées"
    End If
End Sub

Remarque :
! bien penser à faire le Randomize au lancement de l'appli

! le tableau en paramètre est modifié et sera donc différent après son utilisation. utiliser une copie si besoin de garder l'intégralité des valeurs

Snippets en rapport avec : Unique, Aléatoire, Valeur, Hasard



Codes sources en rapport avec : Unique, Aléatoire, Valeur, Hasard

{Visual Basic, VB6, VB.NET, VB 2005} GÉNÉRATEUR DE CHAINES PSEUDO-ALÉATOIRES
Salut tout le monde. La pitite source que je dépose ici permet de générer une chaine de caractères d...

{Assembleur} [TUTORÉ] LOTO ET NOMBRES PSEUDO-ALÉATOIRES [MASM]
Comme l'apprentissage passe par la démonstration, voici un petit exemple très simple : le LOTO. L...

{Visual Basic, VB6, VB.NET, VB 2005} ETUDE DE FONCTIONS ALÉATOIRES
Ce dossier contient un programme de 5 fonctions aléatoires différentes, un cours sur les fonctions a...

{Visual Basic, VB6, VB.NET, VB 2005} FONCTION VRAIMENT ALÉATOIRE
Comme vous le savez la fonction Random que propose Visual Basic n'est pas réellement aléatoire, c'es...

{PHP} UNE IMAGE AU HASARD PARMI TOUTES LES IMAGES D'UN RÉPERTOIRES PHP/JAVASCRIPT
se code explore le dossier choisie (dossier comtenant les images) puit dresse une listes des fichier...

{C# / C#.NET} HASARD
Voila ici 4 fonction de hasard: > Harsard.Random( int valeur ); >> Choisis un nombe au hasard ent...

{Visual Basic, VB6, VB.NET, VB 2005} DESORDONNEUR - BORDÉLISER UN TABLEAU
Un petit module pour faire le contraire d'un tri avec dans le zip un exemple d'utilisation. Les bon...

{Visual Basic, VB6, VB.NET, VB 2005} FAIRE FAIRE QQUECHOSE AU HASARD AU PROG.
ben c simple faut faire correspondre une action a un nombre. ...

{Javascript / DHTML} NOMBRE ALÉATOIRE
Fonction réutilisable qui retourne un nombre aléatoire dans l'intervalle choisi.Inspiré de la foncti...

{Visual Basic, VB6, VB.NET, VB 2005} METTRE UNE VALEUR À L'ENSEMBLE DES CONTROLES D'UN MÊME TYPE
Sauf erreur, il n'y a pas dans VB2008 (VB.NET) de la même facilité de faire une collection avec les ...