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.


  • Mod

    Oder 8 Mal bis '\n' ignore n.


Anmelden zum Antworten