Laden...

CSV-Datei einlesen und verarbeiten

Erstellt von SilverX vor 9 Jahren Letzter Beitrag vor 9 Jahren 3.713 Views
Thema geschlossen
Hinweis von herbivore vor 9 Jahren

Original-Titel war: "Viele verschiedene Strings aus Stream lesen und zuordnen"

S
SilverX Themenstarter:in
5 Beiträge seit 2014
vor 9 Jahren
CSV-Datei einlesen und verarbeiten

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

2.298 Beiträge seit 2010
vor 9 Jahren

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 |

R
228 Beiträge seit 2013
vor 9 Jahren

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

4.221 Beiträge seit 2005
vor 9 Jahren

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

2.207 Beiträge seit 2011
vor 9 Jahren

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

Thema geschlossen