Original-Titel war: "Viele verschiedene Strings aus Stream lesen und zuordnen"
Hi,
ich bin gerade dabei, eine Klausurverwaltung zu programmieren. Als Speicher für die Daten (ID,Titel,Dozent,Teilnehmer,Date,Raum) habe ich mich für einen Stream entschieden, in Form einer .txt (Mehr Möglichkeiten kenne ich auch nicht bisweilen).
Die .txt sieht immer folgendermaßen aus:
ID;Titel;Dozent;Teilnehmerzahl;Datum/Uhrzeit;Raum;
1;Mathe;Müller;40;10.12.2014 10:15:00;M306;
2;Deutsch;Meier;30;11.01.2009 11:10:00;M310;
Die Problematik ist nun folgende:
Damit ich mit diesen Daten auch wirklich etwas anfangen kann und damit ich sie verarbeiten kann (anzeigen, sortiert anzeigen, nur bestimmte anzeigen, etc.) muss ich sie in eine andere Form umwandeln.
Mir kommt als erstes eine / mehrere List(s) in den Kopf. Sprich, mein Ziel ist, dass ich mittels einer praktischen Methode den ganzen Stream auslese und in eine List (in Form einer Klasse "Klausur", welche alle Eigenschaften beinhaltet) einspeise, mit der ich dann arbeiten kann.
Nun frage ich mich aber, wie ich den Stream am besten auslesen könnte? Konstanten gibt es außer der Anzahl Eigenschaften, den IDs, der ersten Zeile und dem ';' als Trennzeichen KEINE. Sprich, die Eigenschaften-Werte können variabel lang sein in ihrer Anzahl Zeichen.
Hat jemand eine Idee, wie man das möglichst komfortabel angehen könnte? Ich bin mir sicher eine Lösung dafür finden zu können - Der Code dafür wäre aber wohl schrecklich lang und komplex.
Grüße
Die Datenstruktur deines Textdokuments sieht mir schwer nach CSV aus. - Such einfach mal im Web nach Erstellung von CSV-Dateien und Einlesen dieser. Damit solltest du weiterkommen.
Folgendes könnte dir dabei helfen: CSV Datei in DataTable einlesen
Statt die Daten in die DataTable einzulesen, kannst du hier deine Klasse / eine Liste deiner Klasse füllen.
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
Es wäre einfacher deine "Klausur" zu Serialisieren und dann mit den Objekten zu arbeiten.
So musst du dich nicht um das Speichern und Lesen kümmern.
Hier ist ein Beispiel zu finden: C# Objekte serialisieren und deserialisieren
Oder mit minimem Aufwand
DataSet / DataTable mit dem Designer erstellen... DataSet hat WriteXml/ReadXml-Methoden um File zu lesen/schreiben.
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo SilverX ,
lass die Textdatei sein und nimm ne DB wie SQLite oder sowas. Dann sparst du dir viel Arbeit.
Nach Rücksprache mit einem anderen Mod stimmen wir überein, dass es sich hier um Grundlagen handelt. Daher ist hier zu.
[Hinweis] Wie poste ich richtig? Punkt 1.1
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck