C# CSV Datei einlesen und in properties schreiben. Aber wie?

bywizard

Lieutenant
Registriert
Okt. 2018
Beiträge
537
Guten Tag liebes Forum!
Ich lerne C# an meiner Schule seit ca september 2019 doch nun naht eine arbeit heran und ich habe keine ahnung wie ich csv files einlesen loss und sie dann in eine properties von einer klasse schreiben soll. tutorials zum einlesen habe ich gefunden jedoch bekomme ich immer nur string arrays raus die mit einem "," getrennt sind und meiner auffasung auch nur zeilen sind und keine spalten.
Im anhang ist die datei dich ich einlesen muss und zu jedem studenten eine neue klasse vom typ student machen muss. wie schon gesagt kriege ich nur zeilen raus also sowas:

Code:
*bitte keine personenbezogenen Daten im Code öffentlich posten - die Moderation*

meine idee wäre es das alles zu splitten aber dann habe ich ja noch immer im 3 zeilen.

Habt ihr ideen?
 
Zuletzt bearbeitet von einem Moderator:
In einer Schleife über die Zeilen diese beim ; Splitten und dann mit den Daten das Objekt erzeugen. Wo genau ist das Problem?
Du weißt doch, dass in dem gesplittetem Array an Position 0 die Klasse ist, an 1 der Familienname usw. Damit kannst du doch die Objekte befüllen.
 
  • Gefällt mir
Reaktionen: PHuV und Kalsarikännit
also ich habe das jetzt getan. das ist mein code
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace csvFileReader
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] names = File.ReadAllLines(@"C:\Users\Walter\Desktop\names.csv");
            string[] text = new string[names.Length];
            Student ablinger = new Student();
            for (int i = 0; i < names.Length; i++)
            {
                text = names[i].Split(',');
            }
            ablinger.klasse = text[0];
            Console.WriteLine(ablinger.klasse);
            Console.ReadKey();
        }
    }
    class Student
    {
        public string klasse;
    }
}

jedoch geht es immer noch nicht

das kommt dann nur
 
Zuletzt bearbeitet von einem Moderator:
In deiner CSV Datei ist das Trennzeichen doch offenbar das Semikolon. Du musst dieses dann zum Splitten verwenden anstelle des Kommas
 
Ich habe gerade die csv-Datei, den zitierten Code und einen Screenshot entfernt, weil darin personenbezogene Daten enthalten waren. Zudem ließ sich ein Name mit Adresse problemlos googeln und führte zu einem Suchergebnis... ihr solltet vielleicht in der Klasse mal generell über Datenschutz sprechen.

Wenn du Code hier posten willst, verfremde bitte die Daten von real existierenden öffentlichen Personen, z.B. mit Fantasienamen/-adressen
 
Empfehle dir, die Library CsvHelper zu verwenden. String.Split reicht nicht immer aus. Laut RFC
https://tools.ietf.org/html/rfc4180
sind auch Hochkommatata möglich, um eine Textfolge zu maskieren. Ein Komma innerhalb
einer Textfolge wird von deinem Code nicht richtig verarbeitet.
 
Zurück
Oben