Ergebnis 1 bis 5 von 5
  1. #1
    W32.FunLove
    Registriert seit
    15.07.2008
    Beiträge
    135

    Standard [S] Nummerngenerator

    Hallo ,

    ich möchte gerne einen kleinen "keygen" schreiben , er soll einfach nur in 12 Textfelder jeweils eine 4 stellige zufälluge zahl generieren .

    Wie löse ich das am besten ?

    wen man diese methode hier nutzt kann man ja immer nur vorgegebene zahlen eintragen ...

    Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim key As Integer
    key = Int(Rnd() * 10)
    Select Case key
    Case 1
    TextBox1.Text = "TEXT HERE"
    Case 2
    TextBox1.Text = "TEXT HERE"
    Case 3
    TextBox1.Text = "TEXT HERE"
    Case 4
    TextBox1.Text = "TEXT HERE"
    Case 5
    TextBox1.Text = "TEXT HERE"
    Case 6
    TextBox1.Text = "TEXT HERE"
    Case 7
    TextBox1.Text = "TEXT HERE"
    Case 8
    TextBox1.Text = "TEXT HERE"
    Case 9
    TextBox1.Text = "TEXT HERE"
    Case 10
    TextBox1.Text = "TEXT HERE"
    End Select
    End Sub
    und das möchte ich nicht , es sollen wirklich zufällige zahlen sein , kein algo oder sonst was .

    also sowas wie Das hier ,

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim x(7000) As Integer
    For i = 0 To 7000
    x(i) = Rnd() * 200000
    TextBox1.Text = (x(i))
    Next
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Randomize()
    End Sub
    End Class
    aber die zahlen Müssen 4 stellig sein und bei 1000 anfangen .

    Wie bekomm ich das hin

    MfG MIIIK

  2. #2
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    Mathe ist auch zu was nützlich
    Rnd Function (Visual Basic)
    Code:
    ' Initialize the random-number generator.
    Randomize()
    ' Generate random value between 1 and 6.
    Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
    (das ist Beispielcode von MS Seite )
    da du 4 Stelligen Code ab 1000 brauchst:
    rnd() liefert eine zufällige Zahl x mit 0 =< x <1
    wir wollen mit 1000 starten und bis 10000 gehen.
    Also soll das Ergebnis von Rnd einfach mit:
    10000-1000=9000
    multipliziert werden.
    D.h wir haben dann etwas zwischen
    0 und 9000. Addieren 1000 hinzu und haben immer eine zufällige Zahl
    1000<=Zahl<10000
    Code:
    Dim value As Integer = CInt(Int((9000 * Rnd()) + 1000))
    Geändert von EBFE (01.05.2010 um 21:56 Uhr)
    TrueCrypt/RAR/Zip Passwort vergessen und das Bruten dauert ewig? Oder brauchst du fein abgestimmte Wortlisten? Hilf dir selbst mit WLML - Word List Markup Language
    Gib Stoned/Mebroot/Sinowal und anderen Bootkits keine Chance: Anti Bootkit v 0.8.5

  3. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    MIIIK (01.05.2010)

  4. #3
    W32.FunLove
    Registriert seit
    15.07.2008
    Beiträge
    135

    Standard

    also bei dem max von 9999

    muss ich die
    Dim value As Integer = CInt(Int((9000 * Rnd()) + 1000))
    auf 8999 anstatt 9000 setzen ?

    dann habe ich direkt noch eine frage wie kann ich eine comboBox als "If" Object einbinde ?

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ComboBox1.SelectedIndex = 0
    If ComboBox1.Items.Contains("Please Select") Then
    MsgBox("Please Select")

    Else
    generate()
    End If

    End Sub
    Funktioniert nicht

    er setzt mir dann automatisch den "Please Select" Punkt obne in die liste und gibt mir die MSG Box

    wen ich eine andere auswähle kommt das dennoch
    Geändert von MIIIK (01.05.2010 um 22:27 Uhr)

  5. #4
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    Zitat Zitat von MIIIK Beitrag anzeigen
    also bei dem max von 9999

    muss ich die
    Dim value As Integer = CInt(Int((9000 * Rnd()) + 1000))
    auf 8999 anstatt 9000 setzen ?
    ich hab hier kein VB zur Hand
    Aber die Doku sagt ja, dass Rand eine Zahl zwischen 0 und 1 liefert:
    0<=x<1
    (oder umgangssprachlich: größer gleich 0 bis zur 1 "ausschließlich")
    d.h es ist nie gleich 1.
    Und 9000 * etwas kleiner 1 ist immer kleiner 9000
    Daher musst du es nicht unbedingt auf 8999 setzen
    dann habe ich direkt noch eine frage wie kann ich eine comboBox als "If" Object einbinde ?
    Wie gesagt, kein VB zur Hand, schau dir aber mal
    ComboBox.SelectedItem-Eigenschaft (System.Windows.Forms)
    an. Also ComboBox1.SelectedItem
    bsp:
    Code:
    Dim selectedItem As Object
        selectedItem = comboBox1.SelectedItem
        if (selectedItem.ToString()=="mein Text) bla
    TrueCrypt/RAR/Zip Passwort vergessen und das Bruten dauert ewig? Oder brauchst du fein abgestimmte Wortlisten? Hilf dir selbst mit WLML - Word List Markup Language
    Gib Stoned/Mebroot/Sinowal und anderen Bootkits keine Chance: Anti Bootkit v 0.8.5

  6. #5
    Duck and Cover Avatar von $_staX
    Registriert seit
    27.07.2008
    Beiträge
    294

    Standard

    Zitat Zitat von MIIIK Beitrag anzeigen
    und das möchte ich nicht , es sollen wirklich zufällige zahlen sein , kein algo oder sonst was .
    Geht nicht! Ein Computer kennt keinen Zufall!

    First you duck and then you cover!
    #

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •