projektaufgabe

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    projektaufgabe

    hallo, ich komme bei dieser Aufgabe nicht weiter

    ich habe eine text Datei, mit mehreren Teilnehmern die Sotiert werden muss

    es ist ungefähr so aufgebaut: Nachnahme, Vorname, punkte

    es sind 22 verschiedene Personen auf der liste

    ich kann die Datei schon hochladen und es mir auf der Konsole anzeigen lassen, nur ist die Aufgabe das die Schüler zwischen 0 bis 80 punkten haben und ich muss es irgendwie Sortieren. Die Schüler mit mehr als 50 punkten sollen auf einer neuen Tabelle gespeichert werden, auf dem steht das die bestanden haben und die Schüler mit weniger als 50 punkten haben nicht bestanden und das soll in 2 verschiedenen text Dateien gespeichert werden. ich hab keine Ahnung wie ich den Inhalt der Textdatei nach der Punktzahl Sortiere weil es diesmal nicht nur zahlen alleine sind, ohne die namen wäre es kein Problem. kann mir einer hierbei jemand helfen ????
    Zeilenweise einlesen und beim Komma splitten. Dann hast du schonmal die Werte getrennt.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Willkommen im Forum. :thumbup:

    perry309 schrieb:

    die Sotiert werden muss
    Wonach soll sie sortiert werden?
    Häng mal die Datei an:
    Erweiterte Antwort => Dateianhänge => Hochladen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Geht es um eine Sortierung, oder eine bloße Separierung der Daten in 2 Dateien?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    also das ist die liste



    und die soll in 3 verschiedene text Dateien gespeichert werden Unzwar mehr als 50 punkte bestanden, weniger als 50 punkte nicht bestanden und "NE" bedeutet nicht erschien

    hier ist mein code aber ich bekomme immer die fehlermeldung: "System.IndexOutOfRangeException: "Der Index war außerhalb des Arraybereichs."

    Imports System.IO
    Module Module1


    Sub Main()
    Dim filename As String = "C:\Users\mein zimmer\Desktop\Neuer Ordner\physikws2018.txt"
    Dim filename_NE As String = "C:\Users\mein zimmer\Desktop\nicht_erschien.txt"
    Dim filename_NB As String = "C:\Users\mein zimmer\Desktop\nicht_bestanden.txt"
    Dim filename_BE As String = "C:\Users\mein zimmer\Desktop\bestanden.txt"

    For Each line As String In System.IO.File.ReadLines(filename)
    Console.WriteLine(line)
    Dim Arrayofstring() As String = line.Split(",")
    Dim value As String = Arrayofstring(2)
    Dim firstname As String = Arrayofstring(0)
    Dim lastname As String = Arrayofstring(1)

    If value = "NE" Then
    Console.WriteLine("nicht erschienen")
    Console.WriteLine(value)
    Dim writestring As String = line & vbNewLine
    My.Computer.FileSystem.WriteAllText(filename_NE, writestring, True)

    ElseIf value < 40 Then
    Console.WriteLine("nicht bestanden")
    Console.WriteLine(value)
    Dim writestring As String = firstname & ", " & lastname & ", " & "5.0" & vbNewLine
    My.Computer.FileSystem.WriteAllText(filename_NB, writestring, True)

    Else
    Console.WriteLine("bestanden")
    Console.WriteLine(value)
    Dim note As Double
    note = -6 / 80 * value + 7
    Dim writestring As String = firstname & ", " & lastname & ", " & note & vbNewLine
    My.Computer.FileSystem.WriteAllText(filename_BE, writestring, True)
    note = Math.Round(note, 2)
    Console.WriteLine(note)

    End If
    Next

    End Sub

    End Module

    Dateien
    • physikws2018.txt

      (968 Byte, 56 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „perry309“ ()

    perry309 schrieb:

    in excel könnte ich es auch machen nur ist die Aufgabe das in visual basic zu lösen

    Ok, diese Info kam etwas zu spät.

    Du machst einen Split mit Komma als Trennung und sprichst die Einzelteile von 0-2 an. Soweit ist das Ok. Aber die erste Zeile beinhaltet nur ein Komma. Nimm das #Physik_WS2018_1,max. 80 Punkte raus und dann läuft auch Dein Code durch.
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:
    Ich würde alle Zeilen die mit # starten einfach ignorieren. Was ist, wenn zukünftig mittendrin ein Kommentar ist?!

    Ich weiß dass das bei dieser Aufgabe nicht zutrifft, aber ist doch gut wenn man von anfang an sauber programmiert. ;)
    NETworkManager - A powerful tool for managing networks and troubleshoot network problems!

    BornToBeRoot schrieb:

    wenn man von anfang an sauber programmiert


    Vor allem solllte man Option Strict On verwenden. Der TE vergleicht Zahlen mit Strings...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen