Warning: mkdir(): File exists in /srv/users/matheretter/apps/mathelounge/public/qa-plugin/q2apro-caching/qa-caching-main.php on line 503
Wie müssen die Daten in die .svg Datei geschrieben werden, für einen Chart? | Stacklounge
0 Daumen
364 Aufrufe

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;
}

Avatar von

1 Antwort

0 Daumen
 
Beste Antwort

Das points-Attribut muss als Wert eine durch Leerzeichen getrennte Liste von Punkten der Form x,y haben, wobei x und y Zahlen sind.

Avatar von 5,7 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community