Bestimmte Spalte aus csv Datei einlesen
-
Guten Tag zusammen
ich möchte in einer Klasse eine Funktion schreiben, die einen Dateinamen übergeben bekommt. Die csv-Datei mit dem Namen wird dann geöffnet und die Werte einer bestimmten Spalte (später näher beschrieben) sollen - in einem Vector gespeichert - zurückgegeben werden.
Weitere Infos zum Aufbau der csv Datei:
- Das Trennzeichen ist ein Semikolon
- Die relevanten Daten, die gespeichert werden sollen befinden sich in der letzten Spalte von Zeile 9 bis letzteZeile. letzteZeile soll dabei eine integer Variable in der Funktion sein.
-Oberhalb von Zeile 9 und unterhalb von letzteZeile befinden sich auch Daten, die nicht berücksichtigt werden sollen.Hier ist zunächst mal mein Ansatz:
vector <double> meineKlasse::lese_Spalte(const string& dateiname) { vector <double> rueckgabevector; int letztezeile = 38; //oeffne csv-Datei mit Namen dateiname ifstream datei(dateiname.c_str()); if (!datei) { cout << "Datei mit Namen" << dateiname << "nicht gefunden." << endl; return -1; } else { //bestimme letzte Spalte in Zeile 9 //push.back Werte von (zeile 9, letzteSpalte) bis (letzteZeile, letzteSpalte) in den Vector rueckgabevector //schließe csv-Datei datei.close(); return rueckgabevector; } }
Fragen wären explizit:
-Wie kann ich den Pseudocode-Teil am besten umsetzen?
-Gibt es weitere offensichtliche Programmierfehler, da ich (wie man sieht ) absoluter Anfänger bin.Besten Dank!
-
Benutze
std::getline()
um die Datei zeilenweise auszulesen. Bei der Nthen besagten Zeile parst du die Spalte dann.
-
Oder 8 Mal bis '\n'
ignore
n.