Ergebnisse einer While-Schleife nach Excel übertragen



  • Hi, ich bin neu hier, hoffe mal das der Thread hier richtig ist...

    Ich habe folgendes Problem: Ich möchte gerne die Ergebnisse (wenn das überhaupt möglich ist?) folgender while Schleife in eine Exceltabelle schreiben und als ein Diagramm ausgeben:

    float i=strom;
    while(i>=strom*0.9)
    {
    cout << "Der Strom der durch die Spule flie\xe1t betr"<<(char)132<<"gt: " << i <<" Ampere\n" << endl;
    i=i-0.01;
    }

    Es geht darum, dass der Strom um 10% fallen darf. "Strom" wurde bereits in einer Unterfunktion berechnet. In dem Diagramm sollte auf der Y-Achse der Strom und auf der X-Achse die Prozentangaben (0.99, 0.98, 0.97 ... 0.9) eingetragen werden. Wenn ihr Beispiele oder andere Tips für mich habt, wäre ich euch sehr dankbar, denn ich weiß gar nicht wie ich das realisieren soll...



  • Muss es denn wirklich Excel sein? Wenn ja, müsstest du dich mit dem Dateiformat beschäftigen. Die Daten alleine würden sich auch als csv (comma seperated values)-Datei an Excel übergeben lassen, aber damit Excel diese als Diagramm darstellt und das Koordinatensystem auch noch richtig beschriftet?

    Ich würde diesen Weg aber auch gar nicht gehen. Du könntest eine von unzähligen Bibliotheken dafür heranziehen und die Graphen als Bilddatei abspeichern.
    Eine Möglichkeit wäre gnuplot, eine andere (herausfordernde) wäre es, sich ein Bimtap zu erstellen und darin selber rumzuzeichnen (auch dafür gibt es Vorgefertigtes).



  • yahendrik schrieb:

    Muss es denn wirklich Excel sein? Wenn ja, müsstest du dich mit dem Dateiformat beschäftigen. Die Daten alleine würden sich auch als csv (comma seperated values)-Datei an Excel übergeben lassen, aber damit Excel diese als Diagramm darstellt und das Koordinatensystem auch noch richtig beschriftet?

    Danke schon mal für deine schnelle Antwort.
    Ich glaube der Ansatz mit der csv Datei ist schon mal gar nicht so verkehrt. Da bekomme ich dann doch eine normale Exceltabelle und könnte ich dann nich ein Makro erstellen, das mir ein Diagramm erstellt?
    Hast du vielleicht ein Beispiel wie ich so eine csv datei erstelle?



  • Ich glaub, dazu brauchst du kein Beispiel.
    Drück deine Werte einfach mit Komma getrennt in irgendeinen Stream und setz ans Zeilenende noch ein '\n". Das wars dann schon. 🙂



  • Dobi schrieb:

    Ich glaub, dazu brauchst du kein Beispiel.
    Drück deine Werte einfach mit Komma getrennt in irgendeinen Stream und setz ans Zeilenende noch ein '\n". Das wars dann schon. 🙂

    Das habe ich jetzt nicht so genau verstanden 😃
    Aber ich habe ein wenig weitergetüfftel und kriege es jetzt auch hin einen Wert in die csv Datei zu schreiben. Aber ich möchte ja gerne mehrere Werte in der Tabelle haben, also die werte von 0.99 bis 0.9 meines Eingangswertes...
    Für die csv Datei habe ich diese Syntax geschrieben (?):

    FILE *Ausgabe;
    Ausgabe=fopen("Berechnung.csv","w"); //Öffnen der Ausgabedatei
    if (Ausgabe==NULL) //sicherstellen dass Ausgabedatei erstellt werden kann
    {
    printf ("Ausgabedatei kann nicht erstellt werden.\n");
    system("PAUSE");
    exit(1);
    }
    printf("Ausgabedatei erstellt\n\n");

    fprintf(Ausgabe,"Der mindest erforderliche Strom beträgt: ;%f\n\n",i ," Ampere\n"); //Ergebnis in die Ausgabedatei schreiben



  • Ich glaube Dobi meinte eher sowas in der Art:

    std::ofstream os("output.csv");
    
    if(!os.is_open())
        // Fehler beim Öffnen
    
    for(jede zeile)
    {
        for(jeden wert)
            os << wert << ';';
    
        os << '\n';
    }
    
    os << std::flush;
    
    if(!os)
        // Fehler beim Schreiben
    


  • Falls du nicht weißt wie CSV Dateien aussehen, hier ein Beispiel:

    Id,Name,Alter
    0,Peter,32
    1,Günther,14
    2,Jürgen, 26


Log in to reply