• 22-04-2019, 14:22:42
    #1
    Private Sub Command20_Click()
    Dim names() As String
    Dim i As Integer
    Dim j As Integer
    Dim y As Integer
    Dim r As Integer
    Dim tmp As String
    Dim txt As String
    
    ' Put the names in an array.
    names = Split("aysun;ayse;semra;yasemin;selin;betul;zeynep;cemre;jale;ahu;gulfidan;belma;gamze;gizem;pelin;_canan", ";")
    Command21_Click
    ' Randomize the array.
    Randomize
    For i = LBound(names) To UBound(names) - 1
    ' Pick a random entry.
    j = Int((UBound(names) - i + 1) * Rnd + i)
    ' Swap the names.
    tmp = names(i)
    names(i) = names(j)
    names(j) = tmp
    Next i
    
    
    ' Display the results.
    For i = LBound(names) To UBound(names)
    txt = vbCrLf & names(i) & Text5.text
    Next i
    txt = Mid$(txt, Len(vbCrLf) + 1)
    
    Text4.text = txt
    End Sub
    Bu kodla random isim üretiyorum. Fakat işin içinden çıkamadığım nokta şu

    txt = vbCrLf & names(i) & Text5.text
    şu kodun yanına

    Int((3333 * Rnd) + 999)
    bu kodu eklediğimde ismin sonuna sayı ekliyor. Fakat ben herzaman sayı eklensin istemiyorum. Bazen eklenicek bazen eklenmeyecek bunu nasıl çözebilirim?
  • 22-04-2019, 16:03:20
    #2
    BoogeymaN adlı üyeden alıntı: mesajı görüntüle
    Private Sub Command20_Click()
    Dim names() As String
    Dim i As Integer
    Dim j As Integer
    Dim y As Integer
    Dim r As Integer
    Dim tmp As String
    Dim txt As String
    
    ' Put the names in an array.
    names = Split("aysun;ayse;semra;yasemin;selin;betul;zeynep;cemre;jale;ahu;gulfidan;belma;gamze;gizem;pelin;_canan", ";")
    Command21_Click
    ' Randomize the array.
    Randomize
    For i = LBound(names) To UBound(names) - 1
    ' Pick a random entry.
    j = Int((UBound(names) - i + 1) * Rnd + i)
    ' Swap the names.
    tmp = names(i)
    names(i) = names(j)
    names(j) = tmp
    Next i
    
    
    ' Display the results.
    For i = LBound(names) To UBound(names)
    txt = vbCrLf & names(i) & Text5.text
    Next i
    txt = Mid$(txt, Len(vbCrLf) + 1)
    
    Text4.text = txt
    End Sub
    Bu kodla random isim üretiyorum. Fakat işin içinden çıkamadığım nokta şu

    txt = vbCrLf & names(i) & Text5.text
    şu kodun yanına

    Int((3333 * Rnd) + 999)
    bu kodu eklediğimde ismin sonuna sayı ekliyor. Fakat ben herzaman sayı eklensin istemiyorum. Bazen eklenicek bazen eklenmeyecek bunu nasıl çözebilirim?
    Random sayıyı bir değişkene atayıp mod işlemi uygulayabilirsin. Mesela if içinde random sayı mod 2 eşittir 0 yaparsan (yani sadece çift sayılar) ve isme random sayıyı ekleyen kodu da if bloğun içinde kullanırsan eklenme oranı düşecektir. Ne kadar düşük olmasını istiyorsan ona göre çok abartmadan mod sayısını yükseltebilirsin.