Werte zwischenspeichern vom Array

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Werte zwischenspeichern vom Array

    Hallo Freunde,

    habt ihr eine Idee wie ich nicht nur die letzten eingegebenen Werte in meine auswertungstextbox bekomme?

    VB.NET-Quellcode

    1. ​Public Class Form1
    2. Dim Teamss(17) As tabelle
    3. Dim teamscount As Integer = 0
    4. Public Class tabelle
    5. Public team As String
    6. Public Sieg As String
    7. Public drawe As String
    8. Public loose As String
    9. Public goal As String
    10. Public ggoal As String
    11. End Class
    12. Public Sub Main()
    13. For i As Integer = 0 To 17
    14. Teamss(i) = New tabelle
    15. Next
    16. Teamss(teamscount).team = teams.Text
    17. Teamss(teamscount).Sieg = siege.Text
    18. teamscount += 1
    19. eingabe.Text = teamscount
    20. End Sub
    21. Public Sub Main2()
    22. For i = 0 To teamscount - 1
    23. auswertung.Text &= "Team" & vbTab & CStr(Teamss(i).team) & vbTab & CStr(Teamss(i).Sieg) & vbNewLine
    24. Next
    25. End Sub
    Wird es besser, wenn in der Main-Sub das Next am Ende der Sub steht statt nach der "= New tabelle"-Zeile?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wenn ich die genannte Änderung verwende (und die auswertung-TextBox auf MultiLine = True stelle), bekomme ich mit diesem Code
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Main()
    4. End Sub
    5. Dim Teamss(17) As tabelle
    6. Dim teamscount As Integer = 0
    7. Public Class tabelle
    8. Public team As String
    9. Public Sieg As String
    10. Public drawe As String
    11. Public loose As String
    12. Public goal As String
    13. Public ggoal As String
    14. End Class
    15. Public Sub Main()
    16. For i As Integer = 0 To 17
    17. Teamss(i) = New tabelle
    18. Teamss(teamscount).team = i.ToString
    19. Teamss(teamscount).Sieg = Nothing
    20. teamscount += 1
    21. Next
    22. End Sub
    23. Public Sub Main2()
    24. For i = 0 To teamscount - 1
    25. auswertung.Text &= "Team" & Microsoft.VisualBasic.vbTab & CStr(Teamss(i).team) & Microsoft.VisualBasic.vbTab & CStr(Teamss(i).Sieg) & Microsoft.VisualBasic.vbNewLine
    26. Next
    27. End Sub
    28. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    29. Main2()
    30. End Sub
    31. End Class

    Da ich nicht weiß, was in teams.text und siege.text drinsteht, hab ich das geändert.

    dieses Ergebnis:


    Was soll anders sein?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Als Außenstehender kann ich mit der Antwort kaum was anfangen, weil ich gedanklich nicht in Deinem Programm und Deinen Plänen bin. Ich vermute, dass Du Dir ein Team rauspicken willst und für dieses Daten hinterlegen willst. Und später die Daten aufrufen willst. Dazu musst Du (ich geh nicht auf irgendwelche konkreten Methoden ein) ermitteln oder festlegen, welches Team Du bearbeiten willst (z.B. durch Auswahl aus ner Liste oder Festlegen des Indexes von dem Team, welches Du bearbeiten willst) und dann aufrufen:

    VB.NET-Quellcode

    1. Teamss(IndexDesZuBearbeitendenTeams).team = teams.Text
    2. Teamss(IndexDesZuBearbeitendenTeams).Sieg = siege.Text

    Wie Du aber nun zu IndexDesZuBearbeitendenTeams kommst, musst Du selber festlegen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    In der Sub Main erstellst Du 18 Tabellen (zumindest nennst Du die Klasse tabelle). Nicht eine Tabelle mit 18 Teams.

    dekon12 schrieb:

    Leider bekomme ich bei der Eingabe aber immer nur den letzten Wert und nicht noch die vorherigen angezeigt
    Was für ne Eingabe, was für ne Anzeige? Ich weiß gerade gar nicht, wo Du gedanklich in Deinem Programm oder dem gezeigten Code bist.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Schreiben Sie ein Visual Basic-Programm, das für jedes Team einer Fußball-Liga die folgenden Informationen aufnimmt: - Name des Teams (z.B. Karlsruher SC) - Anzahl der gewonnenen Spiele - Anzahl der verlorenen Spiele - Anzahl der Unentschieden - Anzahl der Punkte (Sieg 3 Punkte, Unentschieden 1 Punkt, Niederlage 0 Punkte) - Anzahl der geschossenen Tore - Anzahl der kassierten Tore Erstellen Sie dazu den neuen Datentyp „Team“ als Struktur. Realisieren Sie die Liga dann als ein Array von Teams. Im Visual Basic-Programm sollen die Daten (Name des Teams, Anzahl gewonnene Spiele (S), Anzahl verlorene Spiele (N), Anzahl Unentschieden (U), Anzahl geschossene Tore (T), Anzahl kassierte Tore (G) von max. 18 Teams eingegeben werden können und in einem Array des neuen Datentyps Team abgespeichert werden. Die Punktezahl des Teams soll innerhalb der Struktur berechnet werden
    Ok, jetzt wissen wir zwar alle, dass es hier um Deine Hausaufgaben geht, aber ich weiß noch nicht, wo Du welche Eingaben machst und wo Du was angezeigt haben willst. Ein Beispiel als Screenshot wäre sinnvoll, also: wie sieht es momentan aus, wo machst Du welche Eingaben, was kommt dabei raus und wie soll dann aber am Ende es aussehen bzw. was soll anders aussehen? Wie gesagt: Als Bild bitte (über [+ Erweiterte Antwort]), nicht als Text.
    Zum anderen wird durch Deinen letzten Post aber etwas anderes klar: Deine Klassendeklaration aus Post#1 ist irreführend. Da deklarierst Du eine Klasse namens Tabelle. ABER: Was Du da inhaltlich deklarierst, ist keine Tabelle, sondern ein Team. Daher solltest Du das Konstrukt auch so benennen. Und das Klassenmember aus Post#1 Public Team As String sollte folgerichtig umbenannt werden zu TeamName. Die Tabelle muss dann als neue Klasse deklariert werden, und zwar so, dass sie als Klassenmember nur 18 Instanzen der Klasse Team enthält und ggf. z.B. noch den Namen der Tabelle (z.B. später dann "1. Bundesliga").
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich verstehe nicht. Du hast doch nen Anfang.

    VB.NET-Quellcode

    1. Public Class Spieltabelle
    2. Public Name As String
    3. Public Teams As Team(17)
    4. Public Sub New(Name As String)
    5. Me.Name = Name
    6. End Sub
    7. End Class
    8. '...
    9. Private ErsteBundesligaTabelle As New Spieltabelle("1. Bundesliga")
    10. For i = 0 To 17
    11. ErsteBundesligaTabelle.Team(i) = New Team()
    12. Next
    13. ErsteBundesligaTabelle.Team(0).Name = "Bavaria München"
    14. ErsteBundesligaTabelle.Team(1).Name = "RaBa Leipzig"
    15. '...

    (stark ausbaufähig)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.