Autor Beitrag
lillyextra26@gmail.com
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 01.03.23 20:02 
Guten Abend liebe Gemeinde,

ich bin relativ neu bei C#.
In den letzten Tagen habe ich per Konsole ein ZahlenRaten-Spiel gemacht.
Die Versuche wurden gezählt und gemeinsam mit den Namen an eine .txt-Datei übergeben.
Sieht in der Datei so aus:
ausblenden Datei
1:
2:
3:
4:
5:
6:
Heike 2
Luna 2
Bernd 4
Ilona 15
Jenny 8
Heiko 13

Nun würde ich gerne eine Art Rangliste machen. Jedoch bin ich zu blöd um einen gescheiten Weg dahin zu finden.
Das einzigste, was ich hin bekomme, ist die komplette Datei auszulesen oder die erste Spalte.
Könntet ihr mit bitte ein paar Hilfen zur Hand geben?

Lg

Moderiert von user profile iconTh69: Code-Tags hinzugefügt
Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Do 02.03.2023 um 09:15
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 01.03.23 20:35 
Es hilft ein Dateiformat zu wählen das möglichst einfach zu lesen und zu schreiben ist. Und dein Format ist nur vordergründig einfach in der Art das es einfach aussieht.
Ich meine mit einfach ein Format das einfach aus einer Datenstruktur in eine Datei geschrieben und wieder gelesen werden kann. Da ist man ganz schnell bei Dingen die da JSON oder XML heißen und bei denen es Sprach/Framework-Unterstützung gibt die aus einer Datenstruktur in ein File zu schreiben bzw. zu lesen gibt(Ein Serializer).

Beispiel: Sollte ich damit deinen Wissenstand weit verfehlen und nur Fragezeichen auslösen zeig am besten deinen Code und wir versuchen dann von da das in eine passende Richtung zu lenken
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
    public class Program
    {
        static void Main(string[] args)
        {
            // unsortierte Ausgangsliste
            List<Player> players = new List<Player>()
            {
                new() { Name = "Heike", Try = 2 },
                new() { Name = "Luna", Try = 2 },
                new() { Name = "Bernd", Try = 4 },
                new() { Name = "Ilona", Try = 15 },
                new() { Name = "Jenny", Try =  8 },
                new() { Name = "Heiko", Try =  8 },
            };

            // in file schreiben
            var fileContentToBeWritten = JsonSerializer.Serialize(players);
            File.WriteAllText("C:/test/players.json", fileContentToBeWritten);

            // aus file lesen
            var fileContentRead = File.ReadAllText("C:/test/players.json");
            players = JsonSerializer.Deserialize<List<Player>>(fileContentRead);

            // sortieren und ausgeben
            var sortedplayers = players.OrderBy(x => x.Try).ToList();

            Console.WriteLine("Rangliste");
            foreach (var player in sortedplayers)
                Console.WriteLine($"{player.Name}   {player.Try}");
        }
    }

    public class Player
    {
        public string Name { get; set; }
        public int Try { get; set; }
    }


ausblenden Ergebnis
1:
2:
3:
4:
5:
6:
7:
Rangliste
Heike   2
Luna   2
Bernd   4
Jenny   8
Heiko   8
Ilona   15


Edited: Hab zuerst missverstanden wofür die Zahl steht.