tableau aléatoire [ résolu ] [VB6] - VB/VBA/VBS - Programmation
Marsh Posté le 09-06-2005 à 17:03:05
C'est bizarre...20 personnes ont visulisé mon topic mais aucune réflexion.  
 
Si vous trouvez que mes explicatios ne sont pas claires n'hésitez pas à le dire. 
Marsh Posté le 09-06-2005 à 17:14:57
| amsterdam a écrit : Salut.  | 
 
Salut, 
 
Ce que tu peux faire c'est utiliser la fonction rmd (si mes souvenirs sont exacts) pour "tirer" un chiffre aléatoire qui sera l'indice de ton tableau dans lequel placer ton mot. 
 
Et tu boucles jusqu'à ce que ton tableau soit plein! Attention, il te faudra sûrement tester la valeur du chiffre aléatoire trouvé parce que peut-être que VB retournera plusieurs fois le même. Mais je ne suis pas sûr parce qu'il me semble que tu peux "initialiser" le randomize... Et si tu ne l'initialise qu'une fois, peut-être qu'il te sortira tous les nombres sans "tirer au sort" 2x le même. 
 
Voilà... Faut juste être patient 
Marsh Posté le 09-06-2005 à 17:38:04
C'est justement le problème de doublons qui me pose problème. 
Donc en attendant j'ai commencé à tester autre chose. 
Je crée une boucle qui me sort une chaine genre "123456" en fonction de la taille du tableau. 
Me reste plus qu'à extraire les chiffres qui représentent l'indice du tableau de mots et comme ça pas de doublons. 
 
Bon d'accord c'est surement un peu bourrin mais bon.... 
 
Enfin merci pour ta réponse. 
Marsh Posté le 09-06-2005 à 17:46:29
Par contre si j'ai plus de 10 mots je vais être mal....enfin j'essaie quand même. 
Marsh Posté le 09-06-2005 à 18:27:58
Rapido: 
sub test() 
Dim MyValue As Integer 
Dim Nbmot, Cpt1, Cpt2 As Integer 
Dim Montext, MonItem As String 
Dim MonTabl() As String 
'Texte 
'Montext = "On ne peut pas attendre que l'inspiration vienne. Il faut courir après avec une massue." 
Montext = "Les fichiers d'aide de Windows 2000 Server sont généralement placés dans " & _ 
          "C:\Winnt\Help. Ces fichiers sont interconnectés pour former un système d'aide " & _ 
          "intégré et ils contiennent des raccourcis permettant d'ouvrir différents outils " & _ 
          "d'administration. Les fichiers d'aide utilisent environ 30 Mo d'espace disque." 
 
Montext = RTrim(LTrim(Montext)) 
'Compte nb mot 
Cpt1 = 0 
Nbmot = 0 
Do 
    Cpt1 = InStr(Cpt1 + 1, Montext, Chr(32)) 
    Nbmot = Nbmot + 1 
Loop While Cpt1 > 0 
'dim le tableau 
ReDim MonTabl(Nbmot) 
'init 
Cpt1 = 0 
Randomize    ' Initialise le générateur de nombres aléatoires. 
'boucle sur nbmot 
For Nbmot = 0 To UBound(MonTabl, 1) - 1 
    Cpt1 = InStr(Cpt1 + 1, Montext, Chr(32)) 
    Select Case Nbmot 
        Case 0 
            Cpt2 = Cpt1 - 1 
            Cpt1 = 0 
        Case UBound(MonTabl, 1) - 1 
            Cpt2 = Len(Montext) 
        Case Else 
            Cpt2 = InStr(Cpt1 + 1, Montext, Chr(32)) 
    End Select 
    MonItem = Mid$(Montext, Cpt1 + 1, Cpt2 - Cpt1) 
    MonItem = RTrim(MonItem) 
    If Right(MonItem, 1) = Chr(46) Then MonItem = Mid(MonItem, 1, Len(MonItem) - 1) 
    'cherche un index aléatoire dispo ds la dim du tableau 
    Do 
        MyValue = Int((UBound(MonTabl, 1) * Rnd)) 
    Loop While MonTabl(MyValue) <> "" 
    MonTabl(MyValue) = MonItem 
Next 
'Test 
For Cpt1 = 0 To UBound(MonTabl, 1) - 1 
Debug.Print MonTabl(Cpt1) 
Next 
end sub 
 
Bon! le traitement du texte est à revoir (structure, gestion fin paragraphe, majuscules ou pas...) l'essentiel est dans la dernière boucle Do... 
 
Marsh Posté le 09-06-2005 à 19:08:14
Donc si je comprend bien la vérité ( est alleuirs  )se trouve dans cette portion de code ?
 )se trouve dans cette portion de code ? 
|   | 
 
Bon bah y a plus qu'à.... 
Merci. 
Marsh Posté le 09-06-2005 à 21:45:30
Ok. 
Sinon j'ai fait ceci en m'inspirant d'un truc trouvé sur un autre site et 
à priori ça fonctionne. 
|   | 
 
Reste quand même à changer le nom des variables  .
 . 
Merci à vous deux et rendez-vous à mon prochain bloquage. 
Marsh Posté le 07-06-2005 à 19:35:15
Salut.
Voilà j'ai des données à transférer d'un fichier texte vers un tableau, en fait les différents mots d'une phrase.
Le problème est que j'y arrive bien tant qu'il faut que les données soient dans l'ordre mais je ne sais pas comment faire pour placer ces mots dans mon tableau de façon aléatoire.
Si qqun avait une idée...
Merci d'avance.
Message édité par amsterdam le 09-06-2005 à 21:46:41