Palabras aleatorias SIN repeticion [ayuda]

Iniciado por Psyke1, 15 Junio 2010, 02:12 AM

0 Miembros y 3 Visitantes están viendo este tema.

BlackZeroX


Código (vb) [Seleccionar]

Private Sub ClsStrCmb_StrOuput(ByRef Str_Text As String, ByRef Cancel As Boolean)
    CantCombinateString = CantCombinateString + 1
    Debug.Print Str_Text
    DoEvents
End Sub


Dulce Infierno Lunar!¡.
The Dark Shadow is my passion.

Psyke1

#11
Concretamente para lo que queria hacer se me ocurrio esto:
Código (vb) [Seleccionar]

Option Explicit
Private Sub Aleatory_Comb(ByRef CharList() As String, ByVal iDigits As Integer, ByVal iNumber As Long)
   Dim sWord                       As String
   Dim lTotalChar                  As Long
   Dim x                           As Long
   Dim y                           As Long
   Dim Col                         As Collection
   Set Col = New Collection
   lTotalChar = UBound(CharList())
   If iNumber > (lTotalChar) ^ iDigits Then Exit Sub
   On Error Resume Next
   Do While y < iNumber
       For x = 1 To iDigits
           Randomize
           sWord = sWord + CharList((Rnd * (lTotalChar - 1)) + 1)
       Next
       Col.Add sWord, sWord
       If Err.Number = 0 Then
           Debug.Print sWord
           y = y + 1
       Else
           Debug.Print "Palabra duplicada : "; sWord 'Esta linea es solo para que veais que la detecta
           Err.Clear
       End If
       sWord = vbNullString
   Loop
   Set Col = Nothing
End Sub

Private Sub Form_Load()
   Dim Matriz() As String
   Matriz = Split("a,b,c", ",") ' Solo pongo 3 letras para que se repitan =)
   Call Aleatory_Comb(Matriz, 5, 7)
End Sub

Funcionar funciona... ;)

Salu2! :)