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;Score

    Nun 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 Spielername5

    Leider 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;Punkte5

    z.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 🙂


Anmelden zum Antworten