Feedback

C# - CSV einlesen

Veröffentlicht von am 17.11.2015
(0 Bewertungen)
Methode zum einlesen einer CSV Datei.


Der Namensraum System.IO wird benötigt;
Snippet in VB übersetzen
        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();
        }
Abgelegt unter CSV.

3 Kommentare zum Snippet

Patrick Semmler schrieb am 18.11.2015:
Hast Du Deine Methode auch mal getestet?
Deine Methode gibt nur den letzten Datensatz der CSV zurück, denn in

while ((line = stream.ReadLine()) != null)
{ {
parts = line.Split(';');
}

wird parts immer wieder überschrieben, bis zur letzten Zeile.
PaWe1481 schrieb am 20.11.2015:
Stimmt. Ich hab es jetzt geändert. Jetzt sollte es funktionieren
Anonymous2 schrieb am 20.11.2015:
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.
 

Logge dich ein, um hier zu kommentieren!