Losowanie z ciagu

0

Fragment programu, toretycznei dzialajacego w vb.net

Tutaj kod:

Public Class Form1
    Public tbl_pl As String = "0123456789AĄBCĆDEĘFGHIJKLŁMNŃOÓPRSŚTUWYZŹŻaąbcćdeęfghijklłmnńoóprsśtuwyzźż"

    Private Function LosujZnak(ByVal zestaw As String) As String
        Dim lDl As Long
        lDl = Len(zestaw)
        If lDl = 0 Then LosujZnak = "" 'Exit Function
        LosujZnak = Mid$(zestaw, CLng(Math.Round(Rnd() * lDl)), 1)
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        TextBox1.Text = LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl)
        TextBox2.Text = LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl)
        TextBox3.Text = LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl)
        TextBox4.Text = LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl) & LosujZnak(tbl_pl)
    End Sub
End Class

Blad jaki sie wyswietla jest w zalączniki,ale ogolnie chodzi o to ze. Po nacisnieciu guzika zakladam ze to przy wykonaniu pentli czy ifa wraz ze zerowaniem sie zmiennej wychodzi z programu czyt wywala blad ale nie wiem jak to poprawic, zeby bylo poprawnie. Jakas wskazowke bym prosil?
Dziekuje

dodanie kodu do treści posta - fp

0

Wywal funkcje CLng - ona konwertuje tekst na liczbę zaś argumentem u ciebie jest nie tekst tylko liczba.

0

wywalenie tej funkcji nie pomaga

0

W takim razie problem jest w tym że lDl=0
dodaj:
If lDl <> 0 Then LosujZnak = Mid$(...
lub dodaj else do poprzedniego if'a

0

zaden z twoich sposobow nie pomga ale dzieki za checi

1 użytkowników online, w tym zalogowanych: 0, gości: 1