C# - Daten aus CSV Datei Laden.

...komplette Frage anzeigen

3 Antworten

Du musst lediglich die Zeichenkette trennen. Die simpelste Variante wäre hier ein String.split()

string zeile = "Mistgabel;Dies ist eine Mistgabel wie sie jeder Bauer kennt.;10;1 Magischer Ast;Ein Ast der von Magie durchströmt wurde.;10;2 Eichenholzbogen;Ein einfach Jagdbogen aus Eichenholz.;10;3"
string[] elemente = zeile.split(';');

Und da wohl jeder Datensatz hier 4 Elemente hat, kann man die immer relativ einfach trennen:

string teilelement_1 = elemente[datensatz*4];
string teilelement_2 = elemente[datensatz*4+1];

usw... ich gehe aber mal davon aus, dass zwischen den einzelnen Datensätzen ein Zeilenumbruch ist. Somit brauchst Du ja eigentlich nur die Daten Zeilenweise einlesen und verarbeiten. Notfalls kann man ja auch am Zeilenumbruch \n splitten, wenn Du alles in einer einzigen Variable gespeichert hast.

ich gehe aber mal davon aus, dass zwischen den einzelnen Datensätzen ein Zeilenumbruch ist. ...

Tipp: Excel setzt automatisch Zeilenumbrüche, wenn die Datei erzeugt wird. Und wenn sie "nur in Excel geöffnet" wird, hast du einen endlosen Zeichenbrei in einer einzigen Zeile, falls keine Zeilenumbrüche vorhanden sind. Insofern bedurfte es dieses Hinweises nicht mehr.

0
@Unsinkable2

Ich hab jetzt erst gemerkt das gutefrage.net meine Zeiltenumbrüche aufgefressen hat. Ja nach jeden Datensatz kommt ein \n.

0

Da du nicht sagst, was du nach dem Einlesen machen willst, folgt hier noch eine weitere Möglichkeit als Alternative zu Hellstorms Tipp:

Lese die Daten in eine Datentabelle (DataTable) ein und verwende anschließend die Tabelle. Den passenden Quellcode findest du u.a. hier:

Vorteil: Wenn du die Daten später stückchenweise verarbeiten willst und dabei auf verschiedene Datenzeilen gleichzeitig zugreifen möchtest, kannst du mit einer DataTable leichter (und mit weniger Quellcode) arbeiten. Außerdem wandelt die DataTable Zahlen - oft, nicht immer ;) - in das richtige Format um, du sparst dir also explizite Umwandlungen und damit ebenfalls Schreibarbeit.

Nachteil: Wenn die Datenmengen größer werden, wird auch eine DataTable schnell unhandlich und zum Ressourcenfresser.

Wie genau nutzt man eine DataTabelle in C#. Ich hab davon noch nie was gehört, und habe bei Google auch nichts gutes dazu gefunden. Hast du da vielleicht noch ein Link oder ne kleine Hilfe?

MfG.

0

Na, da haste dir ja was vorgenommen :) Aber ganz im Ernst: Das packst du! Mit viel Frickelei und dem obligatorischem Hauch Kreativität. Du benötigst:

  • eine Funktion, um die Datei in eine Zeichenkette einzulesen
  • eine Funktion, um jede Zeile nach "Komma" zu trennen

...und die entstehenden Fragmente weist du dann deinen Member-Variablen zu

Eigentlich ganz einfach, oder? :-)

Was möchtest Du wissen?