Seite 1 von 1

Daten in Exel Datei speichern

Verfasst: Fr Mai 18, 2018 3:37 pm
von hans_c
Hallo Forum
Ich erstelle gerade ein Programm, mit dessen Hilfe ich eine Niveau Regelung simulieren kann.
Ich benutze Code Block (darin eingebunden BGIM Borland Grafik Interface Modul)
In dem Programm werden Kurven z.B. vom Istwert, Sollwert und Stellgröße dargestellt.
Die Werte hinterlege ich jeweils in einem Array.
Diese Daten würde ich gerne zusätzlich in einer Exel Tabelle abspeichern, um sie dort besser zu betrachten.
Meine bisherigen Bemühungen in Sachen Programmieren findet ihr bei Bedarf unter USER stellen sich vor 16.Aug.2015 oder Themenbereich C/C++ vom
10.Jan.2017 Thema „WAV Dateien einbinden“
Mit freundlichem Gruss hans_c

Re: Daten in Exel Datei speichern

Verfasst: Fr Mai 18, 2018 3:43 pm
von Xin
Du müsstest gegen eine API programmieren, die Excel-Tabellen erstellen kann.
Also Excel kaufen, ein Abo für das MS-Developer-Programm abschließen usw.

Alternativ vergessen wir Excel und nehmen Calc von OpenOffice/LibreOffice. Das ist inkl. der Dokumentation kostenlos verfügbar:
https://wiki.openoffice.org/wiki/Calc/API/Programming

Re: Daten in Exel Datei speichern

Verfasst: Fr Mai 18, 2018 4:55 pm
von hans_c
Hallo XIN
Vielen Dank für Deine schnelle Antwort. Ich besitze das Exel Programm von Micro Soft zwar aber das allein scheint wohl nicht
ausreichend zu sein ?
Ich habe mir die Software von calc mit Hilfe von Deinem Link angeschaut. Da wird mir aber schwindelig, und dann noch alles in englisch.
Wenn es nicht einfacher geht, werde ich wohl erst einmal darauf verzichten.
Mit freundlichen Gruß Hans

Re: Daten in Exel Datei speichern

Verfasst: Fr Mai 18, 2018 5:17 pm
von Xin
hans_c hat geschrieben:Wenn es nicht einfacher geht, werde ich wohl erst einmal darauf verzichten.
Gut, gehen wie die Sache anders an.
Du kannst es auch im CSV-Format speichern: Komma-separierte-Werte. Das ist dann einfach eine Textdatei.

Code: Alles auswählen

1,2,3,4
5,6,7,8
9,10,11,12
Sowas kann Excel auch einlesen und in eine einfache Tabelle ohne Formatierung einsetzen.

Re: Daten in Exel Datei speichern

Verfasst: Fr Mai 18, 2018 5:51 pm
von hans_c
Hallo xin
Vielen Dank für Deinen Rat. Hier ein Ausschnitt aus dem Programm.
Pro Zeiteinheit (1 sek.) werden die Daten in das jeweilige Array gespeichert.
Aber wie bekomme ich zwischen den Werten ein Komma ?

v=v+1; // Zaehler erhoehen
//------------------------ Werte speichern -----------
axarray[v]=ist; //Istwert speichern
awarray[v]=soll; //Sollwert speichern
ayarray[v]=stell; //Stellgr. speichern
awxarray[v]=awx; //Regelabw speichern
// --------------------------------------------------------
Bitte berücksichtige, dass ich kein Profi auf dem Gebiet bin.
Mit freundlichem Gruss Hans

Re: Daten in Exel Datei speichern

Verfasst: Sa Mai 19, 2018 6:14 am
von hans_c
Hallo xin
Nachtrag zu meiner Anfrage.
Dein Rat es mit einer „CSV“ Datei zu probieren ist super.
Ich habe es getestet, und alles läuft bestens.
Nochmal vielen Dank für Deine Bemühungen.
Ich wünsche allen Usern ein frohes Pfingstfest.
Gruß hans_c

Re: Daten in Exel Datei speichern

Verfasst: Sa Mai 19, 2018 8:20 am
von Xin
Also schon geschafft:-D
Freut mich. :-)

Sorry, gestern bin ich nicht mehr zu einer Antwort gekommen, aber es war ja auch nicht so schwer, oder?

Re: Daten in Exel Datei speichern

Verfasst: Sa Mai 19, 2018 1:00 pm
von hans_c
Hallo xin
Du musst Dich doch wohl bei mir nicht entschuldigen. Ich hätte auch eine Woche auf einen guten Rat gewartet.
Anbei ein Ausschnitt aus meinem Programm. Ich habe es auch hinbekommen die jeweiligen Namen in den entsprechenden Spalten zu schreiben.
Nochmal herzlichen Dank
Mit freundlichem Gruß Hans

Code: Alles auswählen

//----------------- Unterprogramm Daten in Exel Datei speichern -----
    //axarray[v]=ist;     //Istwert  speichern
    //awarray[v]=soll;    //Sollwert speichern
    //ayarray[v]=stell;   //Stellgr. speichern
    //awxarray[v]=awx;    //Regelabw speichern
int speichern() 
{
FILE* fp;
fp=fopen("sarray.csv", "w");
fprintf(fp,"%s;%s;%s;%s;%s \n","  ","Istwert","Sollwert","Stellgr","Regelabweich");
for(a=1;a<v;a++)// Aufnahmedauer 
{
    fprintf(fp,"%u;%d;%d;%d;%d \n",a,axarray[a],awarray[a],ayarray[a],awxarray[a]+200);
}
fclose(fp);
return 0;
}
Edit by Xin: Codetags eingefügt