Frage:
Hallo, ich möchte gerne eine .txt Datei in C einlesen "finale_daten.txt" und daraus einen Aktienchart als .svg Datei ausgeben. Ich schreibe dazu die eingelesenen Daten in chart.svg. Aber wenn ich anschließend die .svg öffne zeigt es mir nichts an. Kann mir jemand einen Tipp geben was ich falsch mache. Schreibe ich die Daten nicht korrekt in die .svg Datei?finale_daten.txt (1,5 MB). Bzw. wie müssen die Daten in die .svg Datei geschrieben werden damit ich einen schönen Aktienchart erhalte? Danke!
Code:
#include <stdio.h>
#include <stdlib.h>
void Replace(char *pStr, char replace, char newChar)
{
do{
if(*pStr == replace) *pStr = newChar;
} while(*pStr++);
}
int main()
{
FILE *f= fopen("finale_daten.txt","r");
if(f==NULL)
{
printf("Fehler bei dem öffnen der Datei");
}
FILE *svg_file = fopen("chart.svg", "w");
if (!svg_file) {
printf("fail to open chart.svg\n");
exit(1);
}
// write svg head
const char *svg_head = "<svg xmlns='http://www.w3.org/2000/svg'><defs><polyline id='line' points='\n";
fputs(svg_head, svg_file);
char aa[1000],bb[1000],cc[1000],dd[1000],ee[1000];
char buf[350];
char puffer[350];
double min_x = 0.0, min_y = 0.0;
while(fgets(puffer, 350, f) != NULL) // Zeile wird eingelesen und von f und in puffer gespeichert
{
sscanf(puffer,"%[^;];%[^;];%[^;];%[^;];%[^;]\n",aa, bb,cc,dd,ee);
Replace(ee, ',', '.');
fprintf(svg_file, "%s,%s\n", aa, ee);
printf("%s;%s\n",aa,ee);
}
// write svg tail
const char *svg_tail = "'/></defs><use href='#line' x='%f' y='%f' fill='none' stroke='black' /></svg>";
fprintf(svg_file, svg_tail, -100, -100);
return 0;
}