CSV - Datei in eine Tabelle umwandeln?



  • out schrieb:

    Wieso sollte jemand die Klammer { mal in eine neue Zeile (nach main) und mal in die Zeile der Anweisung machen (if...). Leute, die ihre Quellcodes selbst schreiben, sind nicht so inkonsistent

    Doch, sowas hab ich schon öfter gesehen. Es gibt durchaus Leute, die die Klammern nach Klassen/Funktionen anders setzen, als nach if/for.



  • Mechanics schrieb:

    out schrieb:

    Wieso sollte jemand die Klammer { mal in eine neue Zeile (nach main) und mal in die Zeile der Anweisung machen (if...). Leute, die ihre Quellcodes selbst schreiben, sind nicht so inkonsistent

    Doch, sowas hab ich schon öfter gesehen. Es gibt durchaus Leute, die die Klammern nach Klassen/Funktionen anders setzen, als nach if/for.

    Ist sogar sehr häufig, siehe auch:https://de.wikipedia.org/wiki/Einr%C3%BCckungsstil#Variation:_Original_K.26R_.2F_Kernel_.2F_Linux_.2F_UNIX_.2F_Stroustrup

    An Carlos: du wirst nicht drum herumkommen, eine von folgenden Varianten zu machen:
    a) feste Breiten nutzen und die Spalten, sofern sie länger sind, abschneiden
    b) erst die maximale Breite pro Spalte ermitteln und dann (maxBreite-aktuelleBreite) Füllzeichen einzufügen (siehe z.B. http://www.cplusplus.com/reference/iomanip/setw/)



  • So habe ich es in der Uni von meinem Prof. gelernt;)

    okay gut alles klar danke dir=) hat geklappt 👍



  • Ich drücke es mal anders aus....Ich will das er mir meine CSV-Datei "geordnet" wiedergibt 😃


  • Mod

    Carlos_Hafensänger schrieb:

    Ich drücke es mal anders aus....Ich will das er mir meine CSV-Datei "geordnet" wiedergibt 😃

    Geordnet wonach? Hast du überhaupt das Einlesen inzwischen gelöst? Wo liegt dein Problem beim Sortieren?

    Ich kann meine Vorredner voll verstehen. Alleine Die Art, wie du hier Fragen stellst, macht offensichtlich, dass du wohl keine Antwort verstehen würdest und du höchstwahrscheinlich auch gar nicht an einer Erklärung oder Lösung interessiert bist, sondern einfach nur möchtest, dass jemand deine Hausaufgaben macht. Und selbst dafür stellst du deine Fragen schlecht, denn um diene Hausaufgaben zu lösen, müsste man ja erst einmal die Aufgabe kennen.



  • #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <stdio.h>
    #include <iomanip>
    #include <string.h>
    
    using namespace std;
    
    int main()
    {
        string name;
        cout <<"Name des Pfades eingeben: ";
        cin >> name;
        ifstream datei;
        string zeile;
        datei.open(name.c_str());
        int width = 5;
    
        if(datei.is_open()) {
    
            int zeilenCounter = 0; 
    
            while(getline(datei, zeile) && zeilenCounter <11) //gibt mir die ersten zehn Zeilen der CSV wieder.
            {
                cout<<setw(width);
                cout<< zeile <<endl;
                zeilenCounter++;
            }
    
           datei.close(); //datei wird wieder geschlossen
    
        }
        else{
            cerr << "Fehler beim Öffnen!"; //gibt diese meldung wieder, falls datei geschützt ist.
        }
        return 0;
        }
    

    hier nochmal mein code mit einer kleinen Veränderung.

    1.ich bin neu und Anfänger, also deswegen nicht direkt urteilen bitte;) danke.
    ich bitte lediglich nur um Hilfe und nicht um Belehrungen. Glaube dafür meldet man sich hier auch an!

    2.Ein Kommilitone hat gemeint das ich jetzt nur noch die Zeilen aufteilen muss
    in meiner while schleife

    While(...){
    splitZeile
    forEachColumn{
    cout<<setw(width)<<spalte[i];
    }
    cout<<endl;
    }

    so in der Art.
    Hat er da recht?



  • Carlos_Hafensänger schrieb:

    Hallo Leute,
    ich würde gerne eine CSV-Datei als Tabelle bzw. Spalten wiedergeben.

    Carlos_Hafensänger schrieb:

    Ich drücke es mal anders aus....Ich will das er mir
    meine CSV-Datei "geordnet" wiedergibt 😃

    Was denn nun. Willst du die formatiert auf der Konsole ausgeben, dass es wie eine Tabelle aussieht, willst du die sortieren (wenn ja nach was) oder beides?

    Carlos_Hafensänger schrieb:

    2.Ein Kommilitone hat gemeint das ich jetzt nur noch die Zeilen aufteilen muss
    in meiner while schleife

    While(...){
    splitZeile
    forEachColumn{
    cout<<setw(width)<<spalte[i];
    }
    cout<<endl;
    }

    so in der Art.
    Hat er da recht?

    Was meinst du? Hat er damit recht? Erreichst du mit dem Pseudocode, was du möchtest?

    P.S. Nutz bitte die C++ Code Tags (rechts neben den einfachen Code Tags).



  • Genau , ich möchte einfach nur das die Konsole es mir Formatiert ausgibt, so dass es aussieht wie eine Tabelle....mehr nicht 👍



  • Bisher liest du immer zeilenweise ein und gibst die wieder unverändert aus.
    Du mußt aber spaltenweise einlesen, z.B. mittels

    while(getline(datei, wert, ',')) // ',' ist das Trennzeichen
    

    Nun kannst du die einzelnen Spaltenwerte per

    cout << setw(width) << wert <<endl;
    

    ausgeben.
    Die Herausforderung für dich ist dann noch das Erkennen einer Zeile (wenn du die Anzahl der Spalten kennst, dann kannst du zwei verschachtelte Schleife verwenden).



  • Hat alles geklappt 😃
    danke Leute 🙂 👍


Anmelden zum Antworten