Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
CSV-Datei einlesen und verarbeiten

Moderationshinweis von herbivore (12.12.2014 - 09:47)

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

SilverX
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

CSV-Datei einlesen und verarbeiten

beantworten | zitieren | melden

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:
Zitat
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
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von inflames2k am .
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
Rioma
myCSharp.de - Member



Dabei seit:
Beiträge: 228

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2.207
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers