Sprache: C#
Methode zum einlesen einer CSV Datei.
Der Namensraum System.IO wird benötigt;
public string[][] ReadCSV(string file)
{
if (File.Exists(file))
{
string[] lines = File.ReadAllLines(file);
string[][] parts = new string[lines.Length][];
for (int i = 0; i < lines.Length; i++)
{
parts[i] = lines[i].Split(';');
}
return parts;
}
else
throw new FileNotFoundException();
}
public string[][] ReadCSV(string file)
{
if (File.Exists(file))
{
string[] lines = File.ReadAllLines(file);
string[][] parts = new string[lines.Length][];
for (int i = 0; i < lines.Length; i++)
{
parts[i] = lines[i].Split(';');
}
return parts;
}
else
throw new FileNotFoundException();
}
Alte URL:
/snippet/csv-einlesen/12071
Hast Du Deine Methode auch mal getestet?
Deine Methode gibt nur den letzten Datensatz der CSV zurück, denn in
[code]
while ((line = stream.ReadLine()) != null)
{ {
parts = line.Split(‚;‘);
}
[/code]
wird parts immer wieder überschrieben, bis zur letzten Zeile.
Stimmt. Ich hab es jetzt geändert. Jetzt sollte es funktionieren
Du solltest aber noch den Feldtrenner flexibel machen, CSV Dateien werden nicht nur durch ; getrennt. Außerdem versagt die Methode bei Werten die den Feldtrenner in sich tragen (was erlaubt ist).
https://tools.ietf.org/html/rfc4180
Da steht drin, wie das Format aufgebaut ist.