[VB 08]Problem mit Code

04/23/2011 21:34 Kugelsicher#1
Ich möchte das wenn auf Button1 geklickt wird in Textbox1 einmal ein text erscheint und einmal ein anderer und dann wieder ein anderer usw. Diese Texte sollen alle vorgegeben sein.

Den Code hab ich schon:
Code:
TextBox1.Text = Int(Rnd() * 4)
Select Case TextBox1.Text
Case 0
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx"
Case 1
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx"
Case 2
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx"
Case 3
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx
End Select
Jetzt gibts da aber ein Problem. Es ist ja Zufall welcher TExt angezeigt wird und so kommt es relativ häufig vor das der selbe Text öfters hintereinander kommt. Wisst ihr wie ich es umcoden könnte, damit ein Text nicht öfters hintereinander angezeigt wird?

Danke im vorraus.
04/24/2011 02:19 MoepMeep#2
if alte_auswahl != neue_auswahl
04/24/2011 10:06 Kugelsicher#3
Meinst du das ich bei jedem Case einen If befehl dazupacken soll?
04/24/2011 10:29 Gameforce#4
Deklarier dir doch einfach ne Variable in der die alte Zahl steht, und dann fragst du eben beim Random erzeugen ab, ob dieselbe Zahl erzeugt wurde, falls ja dann nochmals würfeln...


Würd dann so aussehen:
Code:
Public Class Form1 'iwas..
Dim alteZahl as Integer = 0
Private Sub Button1_Click () 'weißt schon
Do
TextBox1.Text = Int(Rnd() * 4)
Loop Until TextBox1.Text <> alteZahl.ToString()
alteZahl = CInt(TextBox1.Text)

Select Case TextBox1.Text
Case 0
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx"
Case 1
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx"
Case 2
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx"
Case 3
TextBox1.Text = "xxxx-xxxx-xxxx-xxxx
End Select
End Sub
End Class
Wenn du eine Variable benutzen würdest, in der die Random-Zahl, wäre es nicht so ein lästiges konvertieren ;)


Gruß
04/24/2011 10:35 TheFailKid#5
Code:
Public Class Form1
    Public Zaehler As Integer = 0
    Public Abbruchbedingung As Integer = 0
    Public rnd As New Random
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Randomize()
        Zaehler = Rnd.Next(0, 4)
        If Abbruchbedingung = Zaehler Then
            Do
                Zaehler = Rnd.Next(0, 4)
            Loop Until Abbruchbedingung <> Zaehler
        End If
        Select Case Zaehler
            Case 0
                TextBox1.Text = "xxxx33-xxxx-xxxx-xxxx"
            Case 1
                TextBox1.Text = "xxxx34-xxxx-xxxx-xxxx"
            Case 2
                TextBox1.Text = "xxxx3322-xxxx-xxxx-xxxx"
            Case 3
                TextBox1.Text = "xxxx331111-xxxx-xxxx-xxxx"
        End Select
        Abbruchbedingung = Zaehler
    End Sub
End Class
So würde ich das Problem lösen. Ist nicht viel anders als der Code von Gameforce aber egal. ;) Viel Spaß weiterhin beim programmieren. =)

Greetz TheFailKid
04/24/2011 10:38 Kugelsicher#6
Danke habs gecheckt ;)
04/24/2011 10:40 TheFailKid#7
Kein Problem. Immer wieder gerne. ;)
04/24/2011 10:41 Gameforce#8
Wenn ich fragen darf, wofür brauchst du das?

;-)

Gruß
04/24/2011 10:45 Kugelsicher#9
Quote:
Originally Posted by Gameforce View Post
Wenn ich fragen darf, wofür brauchst du das?

;-)

Gruß
Ich lerne grade VB und das hätte ich schon öfters gebrauchen können. Jetzt hab ich einfach mal die Profis gefragt ;D