Werte aus Textdatei vergleichen
-
Hi Zusammen
Ich hab ein Problem:
Wir müssen in der Schule ein C# Projekt machen, das benotet wird. Ich hab mit einen Kollegen ein Memory Programmiert. (Eig. hat ers Programmiert^^)
Nun habe ich den Auftrag bekommen die Highscoreliste zu Programmieren. Ich hab emir vorgestellt eine txt Datei, die die Scores und Punkte beinhaltet (max 5 Zeilen. Für die besten 5 Scores)
Die Datei schreiben funktioniert schon mal.
Der Aufbau der Datei ist wie gefolgt:
Spielename;Score
Spielename;Score
Spielename;Score
Spielename;Score
Spielename;ScoreNun möchte ich, dass die 5 Scores verglichen werden und in 5 Labels der Grösse nach ausgegeben werden.
Score1 Spielername1
Score2 Spielername2
Score3 Spielername3
Score4 Spielername4
Score5 Spielername5Leider habe ich keine Ahnhung wie ich das machen soll. Das lesen sicher mit einem StreamReader, doch wie lese ich nur teile einer Zeile ein und vergleiche Sie?
Danke
-
Naja du liest die Zeile komplett ein und dann musst du die eben im Programm zu zerpflücken wie du es brauchst.
-
[RumMaul]Erst nichts selber machen und bei der ersten eigenen Aufgabe gleich ins Forum rennen. In der Schule nichts gelernt?[/RumMaul]
Das ist kein Hausaufgaben-lös-Forum, zeig was du bisher hast und erkläre wo es hängt.
-
TTS schrieb:
Das lesen sicher mit einem StreamReader, doch wie lese ich nur teile einer Zeile ein und vergleiche Sie?
Danke
Da wird dir die split-Methode weiterhelfen ...
-
David W schrieb:
[RumMaul]Erst nichts selber machen und bei der ersten eigenen Aufgabe gleich ins Forum rennen. In der Schule nichts gelernt?[/RumMaul]
Das ist kein Hausaufgaben-lös-Forum, zeig was du bisher hast und erkläre wo es hängt.
Alsooo:
Bisher habe ich, den Teil, wo es mir in ein txt File highscore.txt schreibt.
Das funktioniert auch wunderbar. Jedoch bin ich beim File lesen hängengeblieben. Ich weis nicht wo es hängt, aber es hängt.
private void button1_Click(object sender, EventArgs e) { StreamReader myReader = new StreamReader(@"highscore.txt"); string line1 = myReader.ReadLine(); string line2 = myReader.ReadLine(); string line3 = myReader.ReadLine(); string line4 = myReader.ReadLine(); int nIndex1 = line1.IndexOf(";"); lblSpielerName1.Text = line1.Substring(0, nIndex1); lblSpielerZeit1.Text = line1.Substring((nIndex1 + 1), (line1.Length - nIndex1 - 1)); int nIndex2 = line2.IndexOf(";"); lblSpielerName2.Text = line2.Substring(0, nIndex2); lblSpielerZeit2.Text = line2.Substring((nIndex2 + 1), (line2.Length - nIndex2 - 1)); int nIndex3 = line3.IndexOf(";"); lblSpielerName3.Text = line3.Substring(0, nIndex3); lblSpielerZeit3.Text = line3.Substring((nIndex3 + 1), (line3.Length - nIndex3 - 1)); int nIndex4 = line4.IndexOf(";"); lblSpielerName4.Text = line4.Substring(0, nIndex4); lblSpielerZeit4.Text = line4.Substring((nIndex4 + 1), (line4.Length - nIndex4 - 1)); }
Das ist der Code, den ich verwenden wollte. Es Funktioniert nur beim Lesen der 1. Zeile, danach kackt es ab. Vielleicht könnt ihr am Code erkennen, was Falsch ist.
Aufbau des highscore.txt
spielername1;Punkte1
spielername1;Punkte2
spielername1;Punkte3
spielername1;Punkte4
spielername1;Punkte5z.B.
Peter;67326
Hans;7367
Pierre;737
Joe;376733
Master;999999
-
Close. Hab was dämliches gemacht. Das Programm funktioniert so wie es soll, jedoch hab ich beim file schreiben einen Fehler gemacht. Nach jedem Spiel wir die GANZE Highscore liste durch Eine einzige Zeile ersetzt. Dann ists klar, das es nur bei der ersten Zeile läuft
-
Vielleicht könnt ihr am Code erkennen, was Falsch ist.
Ehm, ich sag mal so, du bringst den Ausdruck Quälkot auf ein völlig neues Level.
Es Funktioniert nur beim Lesen der 1. Zeile, danach kackt es ab
Fehlermeldung? Debugger?
-
David W schrieb:
Ehm, ich sag mal so, du bringst den Ausdruck Quälkot auf ein völlig neues Level.
Wieso denn?
-
Ich hätte das ja in eine Schleife gepackt, falls du nicht weißt wie viele Highscores du hast