Benutzer mit den meisten Antworten
Lottozahlen Auswerten

Frage
-
Hallo Zusammen
Ich möchte mit Visual Basic 2012 Lottozahlen Auswerten. Dazu habe ich eine Listbox1 " Hier werden meine Tipps von eine Textdatei Eingelesen"
02 09 10 27 32 48
02 09 19 21 39 48
02 13 14 27 42 47
02 13 20 23 45 47
03 06 15 28 30 44
03 15 17 29 34 46
03 15 23 24 42 46
04 10 11 25 40 48
Die Listbox1 ist schon gefüllt mit ListBox1.Items.Add(sr.ReadLine).
Und 49 checkboxen "Hier werden die gezogenden Zahlen angeklickt ......6 Zahlen" .
Durch ein klick auf ein Button1 sollen jetzt die Zahlen Ausgewertet werden.
Dazu habe ich 5 Label wo das ergebnis(anzahl) angezeigt werden soll.
Label1.Text = sechser
Label2.Text = fuenfer
Label3.Text = vierer
Label4.Text = dreier
Label5.Text = zweier
Und genau hier komme ich nicht weiter.....Mein Code bis jetzt ist so.
Friend Class Form2 Dim AlleCheckBoxen As New ArrayList Dim zweier As Integer Dim dreier As Integer Dim vierer As Integer Dim fuenfer As Integer Dim sechser As Integer Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load ' 49 Verweise auf CheckBoxen in eine Liste aufnehmen AlleCheckBoxen.Add(Checkbox1) AlleCheckBoxen.Add(Checkbox2) AlleCheckBoxen.Add(Checkbox3) AlleCheckBoxen.Add(Checkbox4) AlleCheckBoxen.Add(Checkbox5) AlleCheckBoxen.Add(Checkbox6) AlleCheckBoxen.Add(Checkbox7) AlleCheckBoxen.Add(Checkbox8) AlleCheckBoxen.Add(Checkbox9) AlleCheckBoxen.Add(Checkbox10) AlleCheckBoxen.Add(Checkbox11) AlleCheckBoxen.Add(Checkbox12) AlleCheckBoxen.Add(Checkbox13) AlleCheckBoxen.Add(Checkbox14) AlleCheckBoxen.Add(Checkbox15) AlleCheckBoxen.Add(Checkbox16) AlleCheckBoxen.Add(Checkbox17) AlleCheckBoxen.Add(Checkbox18) AlleCheckBoxen.Add(Checkbox19) AlleCheckBoxen.Add(Checkbox20) AlleCheckBoxen.Add(Checkbox21) AlleCheckBoxen.Add(Checkbox22) AlleCheckBoxen.Add(Checkbox23) AlleCheckBoxen.Add(Checkbox24) AlleCheckBoxen.Add(Checkbox25) AlleCheckBoxen.Add(Checkbox26) AlleCheckBoxen.Add(Checkbox27) AlleCheckBoxen.Add(Checkbox28) AlleCheckBoxen.Add(Checkbox29) AlleCheckBoxen.Add(Checkbox30) AlleCheckBoxen.Add(Checkbox31) AlleCheckBoxen.Add(Checkbox32) AlleCheckBoxen.Add(Checkbox33) AlleCheckBoxen.Add(Checkbox34) AlleCheckBoxen.Add(Checkbox35) AlleCheckBoxen.Add(Checkbox36) AlleCheckBoxen.Add(Checkbox37) AlleCheckBoxen.Add(Checkbox38) AlleCheckBoxen.Add(Checkbox39) AlleCheckBoxen.Add(Checkbox40) AlleCheckBoxen.Add(Checkbox41) AlleCheckBoxen.Add(Checkbox42) AlleCheckBoxen.Add(Checkbox43) AlleCheckBoxen.Add(Checkbox44) AlleCheckBoxen.Add(Checkbox45) AlleCheckBoxen.Add(Checkbox46) AlleCheckBoxen.Add(Checkbox47) AlleCheckBoxen.Add(Checkbox48) AlleCheckBoxen.Add(Checkbox49) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim GewählteCheckBoxen As New ArrayList Dim i, z As Integer Dim ListBoxZeile As String zweier = 0 dreier = 0 vierer = 0 fuenfer = 0 sechser = 0 treffer = 0 ' Angekreuzte Zahlen aufsammeln For i = 0 To 48 If AlleCheckBoxen(i).Checked Then GewählteCheckBoxen.Add(AlleCheckBoxen(i).Text) End If Next For z = 0 To ListBox1.Items.Count - 1 ' Eine Zeile aus der ListBox ListBoxZeile = ListBox1.Items(z) Und genau Hier FEHLT mir was..?????????????? Next z Label1.Text = sechser Label2.Text = fuenfer Label3.Text = vierer Label4.Text = dreier Label5.Text = zweier End Sub End Class
Für jede Hilfe bin ich echt dankbar....Gruß Meikel
Antworten
-
Hallo Dennis
Mein Profi ist noch im Urlaub. Aber ich habe es selbst Hinbekommen. Es geht um die Auswertung von Lotto Zahlen die gezogen worden sind mit den Gespielten Tipps. Dazu habe ich 49 Checkboxen , 2 Listboxen , 6 Label und ein Button. Ich werde das jetzt genauso schreiben wie ich es gemacht habe. Zuerst werden die Gespielten Tipps (TxT.Datei) in der Listbox1 geladen.
Beispiel:
01 04 06 07 09 10
01 04 11 22 33 44
01 04 17 23 35 45
01 04 18 24 36 46
01 04 20 26 41 47
01 04 21 28 43 48
01 06 11 23 36 47
01 06 17 24 41 48
01 06 18 26 43 44
01 06 20 28 33 45
01 06 21 22 35 46
01 07 11 24 43 45
01 07 17 26 33 46Dan werden die Gezogenden Zahlen auf die Checkboxen angeklickt....und wen man 6 Zahlen hatt werden sie in ein Label geschrieben......in mein Code Label5.
Beispiel:
01 07 18 33 45 49
Man kan auch erstmal Label5.Text = (01 07 18 33 45 49)
benutzen . Also geht auch ohne Checkboxen erstmal....
Die anderen Label sind für die Anzeige der Treffer da. Bei mir
Label31.Text = sechser
Label33.Text = fuenfer
Label35.Text = vierer
Label37.Text = dreier
Label39.Text = zweierIn der Listbox2 schreibt der Code die Reihen rein die einen Treffer haben. Hier der Code der Funktioniert.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim myTip(6) As Long Dim gezogen(6) As Long Dim i As Long Dim j As Long Dim treffer As Long Dim ListBoxZeile As String Dim LabelZeile As String Dim z As Integer Dim zweier As Integer Dim dreier As Integer Dim vierer As Integer Dim fuenfer As Integer Dim sechser As Integer Dim treffer As Integer zweier = 0 dreier = 0 vierer = 0 fuenfer = 0 sechser = 0 treffer = 0 ListBox2.Items.Clear() LabelZeile = Label5.Text ' Label Splitten Dim Gewinnzahlen() As String = LabelZeile.Split(" ") For z = 0 To ListBox1.Items.Count - 1 ' Eine Zeile aus der ListBox ListBoxZeile = ListBox1.Items(z).ToString() ' ListBox Splitten Dim tipps As String() = ListBoxZeile.Split(" ") myTip(1) = tipps(0) myTip(2) = tipps(2) myTip(3) = tipps(4) myTip(4) = tipps(6) myTip(5) = tipps(8) myTip(6) = tipps(10) gezogen(1) = Gewinnzahlen(0) gezogen(2) = Gewinnzahlen(1) gezogen(3) = Gewinnzahlen(2) gezogen(4) = Gewinnzahlen(3) gezogen(5) = Gewinnzahlen(4) gezogen(6) = Gewinnzahlen(5) For i = 1 To 6 For j = 1 To 6 If myTip(i) = gezogen(j) Then treffer = treffer + 1 Exit For End If Next j Next i If (treffer = 6) Then sechser = sechser + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 5) Then fuenfer = fuenfer + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 4) Then vierer = vierer + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 3) Then dreier = dreier + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 2) Then zweier = zweier + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If Label31.Text = sechser Label33.Text = fuenfer Label35.Text = vierer Label37.Text = dreier Label39.Text = zweier treffer = 0 Next z End Sub
Gruß Meikel
- Als Antwort markiert Meikel_01 Montag, 29. Juli 2013 12:08
Alle Antworten
-
Hallo, da du die Items der ListBox aus einer Textdatei ausließt, denke ich mal, das es sich um Strings handelt, die die Zahlen enthalten, welche durch Leerzeichen getrennt sind. Also musst du erst einmal die Zahlen auf splitten:
Dim zahlen As String() = ListBoxZeile.Split(" "c)
Nun hast du also ein Array von Zahlen, welche aber noch Strings sind. Nun musst du ermitteln ob die Zahlen die angekreuzten CheckBoxen sind. Die ArrayList GewählteCheckBoxen enthält ja die Liste der CheckBoxen. Diese Liste würde ich nun durch gehen und die Zahl aus dem Namen der CheckBoxen abfragen:
Dim GewählteZahlen As New List(Of String)() For Each cb As CheckBox In GewählteCheckBoxen 'Name = "CheckBox1" '"Checkbox" weg kürzen GewählteZahlen.Add(cb.Name.SubString(8)) Next
Nun hast du eine neue Liste. Diese könntest du auch gleich erstellen, anstelle die Liste von CheckBoxen zu erzeugen.
Nun kannst du mit der Contains-Methode überprüfen ob eine Zahl aus ListBoxZeile enthalten ist. Immer wenn ein Treffer statt fand, zählst du einen Zähler hoch, am ende kannst du den Zähler auswerten:For Each zahl As String In zahlen If GewählteZahlen.Contains(zahl) Then 'Über prüfen ob Zahl in der LB-Zeile enthalten ist.
treffer += 1 End If Next '"treffer" weiter verarbeiten. If treffer = 6 Then MessageBox.Show("Gewonnen!") End IfHinweis: Ich habe das alles nur schnell zusammen geschrieben, weswegen noch Tippfehler enthalten sein könnten.
<Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite | Code Beispiele | Facebook | Twitter | Snippets C# &u892; VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke. -
Du brauchst nur 2 Listen mit den jeweiligen Werten. Du gehst die Elemente der 1. ListBox durch und splittest den String wie oben gezeigt auf. Mithilfe der Contains-Methode kannst du überprüfen ob eine Liste ein bestimmtes Element enthält. Also musst den geteilten String mit der 2. Liste abprüfen. Am einfachsten über die genannte Methode.
Versuche es einfach mal einzubauen. Wenn es funktioniert, dann ist's gut, wenn nicht, dann kann ich(jmd. anderes nochmal drüber gucken.
<Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite | Code Beispiele | Facebook | Twitter | SnippetsC# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke. -
Hallo Tom.
Danke für den Tipp. Das geht bei mir aber nicht. Jetzt habe ich die Listbox2 durch ein Label ersetzt das macht die Sache einfacher. Jetzt werden auch Ergebnisse angezeigt....die aber noch manchmal falsch sind. Ich werde das jetzt an einen Profi schicken...der mir schon sehr geholfen hatt. Wen es geht werde ich eine genaue Beschreibung Posten. So das andere die Interesse daran haben sich das ansehen können.
Vielen Dank
Gruß Meikel
-
Hi Meikel.
Hat dein Profi dir schon helfen können? Hast du Code zum Posten?
Ansonsten können wir das Thema ja hier nochmal aufreifen oder dir mit Codeblöcken helfen ...
Vielleicht kannst du auch nochmal genauer schreiben, was du mit deinem kleinen Lotto-Tool eigentlich beabsichtigst.
Soweit ich deinen Code verstehe, liest du zeilenweise alte Ziehungen (aus einer Datei mit Blanks getrennt) ein, und schaust wie oft eine aktuell eingegebene Zahlenauswahl (deine 49 Checkboxen) darauf zutrifft, und wie viele Richtige es jeweils gewesen wären. Korrekt soweit?
LG, Dennis.
EDI Consultant/Developer
Ich nutze meistens VB6 und VS2005 bis VS2012
Bitte die Antworten sowie weitere hilfreiche Beiträge von Mitgliedern markieren. Vielen Dank.
-
Hallo Dennis
Mein Profi ist noch im Urlaub. Aber ich habe es selbst Hinbekommen. Es geht um die Auswertung von Lotto Zahlen die gezogen worden sind mit den Gespielten Tipps. Dazu habe ich 49 Checkboxen , 2 Listboxen , 6 Label und ein Button. Ich werde das jetzt genauso schreiben wie ich es gemacht habe. Zuerst werden die Gespielten Tipps (TxT.Datei) in der Listbox1 geladen.
Beispiel:
01 04 06 07 09 10
01 04 11 22 33 44
01 04 17 23 35 45
01 04 18 24 36 46
01 04 20 26 41 47
01 04 21 28 43 48
01 06 11 23 36 47
01 06 17 24 41 48
01 06 18 26 43 44
01 06 20 28 33 45
01 06 21 22 35 46
01 07 11 24 43 45
01 07 17 26 33 46Dan werden die Gezogenden Zahlen auf die Checkboxen angeklickt....und wen man 6 Zahlen hatt werden sie in ein Label geschrieben......in mein Code Label5.
Beispiel:
01 07 18 33 45 49
Man kan auch erstmal Label5.Text = (01 07 18 33 45 49)
benutzen . Also geht auch ohne Checkboxen erstmal....
Die anderen Label sind für die Anzeige der Treffer da. Bei mir
Label31.Text = sechser
Label33.Text = fuenfer
Label35.Text = vierer
Label37.Text = dreier
Label39.Text = zweierIn der Listbox2 schreibt der Code die Reihen rein die einen Treffer haben. Hier der Code der Funktioniert.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim myTip(6) As Long Dim gezogen(6) As Long Dim i As Long Dim j As Long Dim treffer As Long Dim ListBoxZeile As String Dim LabelZeile As String Dim z As Integer Dim zweier As Integer Dim dreier As Integer Dim vierer As Integer Dim fuenfer As Integer Dim sechser As Integer Dim treffer As Integer zweier = 0 dreier = 0 vierer = 0 fuenfer = 0 sechser = 0 treffer = 0 ListBox2.Items.Clear() LabelZeile = Label5.Text ' Label Splitten Dim Gewinnzahlen() As String = LabelZeile.Split(" ") For z = 0 To ListBox1.Items.Count - 1 ' Eine Zeile aus der ListBox ListBoxZeile = ListBox1.Items(z).ToString() ' ListBox Splitten Dim tipps As String() = ListBoxZeile.Split(" ") myTip(1) = tipps(0) myTip(2) = tipps(2) myTip(3) = tipps(4) myTip(4) = tipps(6) myTip(5) = tipps(8) myTip(6) = tipps(10) gezogen(1) = Gewinnzahlen(0) gezogen(2) = Gewinnzahlen(1) gezogen(3) = Gewinnzahlen(2) gezogen(4) = Gewinnzahlen(3) gezogen(5) = Gewinnzahlen(4) gezogen(6) = Gewinnzahlen(5) For i = 1 To 6 For j = 1 To 6 If myTip(i) = gezogen(j) Then treffer = treffer + 1 Exit For End If Next j Next i If (treffer = 6) Then sechser = sechser + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 5) Then fuenfer = fuenfer + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 4) Then vierer = vierer + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 3) Then dreier = dreier + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If If (treffer = 2) Then zweier = zweier + 1 ListBox2.Items.Add(ListBox1.Items(z)) End If Label31.Text = sechser Label33.Text = fuenfer Label35.Text = vierer Label37.Text = dreier Label39.Text = zweier treffer = 0 Next z End Sub
Gruß Meikel
- Als Antwort markiert Meikel_01 Montag, 29. Juli 2013 12:08