CSV-File to 2D Arrey



  • Hi

    ich habe ein Problem, und zwar will ich ein CSV-File mit Messdaten in einen 2D-Arrey einlesen. Die Messdaten sind ;-getrennte Zahlenwerte.
    Wei mach ich das am Besten? Hab schon mit fgets rumexperimentiert, aber noch nix lauffähiges hinbekommen.
    Wär echt super wenn mit jemand helfen Könnte.

    Dave



  • ich würde zeilenwiese mit 'fgets' einlesen und mit 'strtok' zerschnetzeln. das sollte schon mal gehen. zum array: nimm ein eindimensionales array und greife mit array[x+y*anzahl_spalten] drauf zu. das wäre wohl einfacher.
    🙂



  • ok mehrere eindimensionale arrays sind natürlich auch kein problem.
    für jede zeile einen array wär optimal.

    wie sieht das denn dann im c-Code aus?

    FILE *datei;
    
    datei = fopen ("E:\\Simulation\\Simulation.csv","r");
    
    while (fgets(buffer, laenge, datei))
    

    wie mach ich da jetzt am besten weiter?
    Danke für eure Hilfe

    Dave



  • -Dave- schrieb:

    wie mach ich da jetzt am besten weiter?

    na, danach die zeile mit 'strtok' zerschnipseln, um an die einzelnen messwerte zu kommen. nach jedem strtok könntest du den string in einen zahlenwert umwandeln (dafür gibts verschiedene möglichkeiten, wie itoa, strtol, etc.) und dann den wert in dein array eintragen, dabei den array-index immer eins hochzählen. in der strtok-schleife würde ich noch prüfen, ob immer die richtige anzahl an messwerten pro zeile da ist.
    🙂



  • Hi!
    Wenn nicht zu viele Werte in einer Zeile stehen, kannst du die Zahlenwerte zeilenweise auch direkt in die Variablen mit fscan reinschreiben.



  • ~fricky schrieb:

    -Dave- schrieb:

    wie mach ich da jetzt am besten weiter?

    na, danach die zeile mit 'strtok' zerschnipseln, um an die einzelnen messwerte zu kommen. nach jedem strtok könntest du den string in einen zahlenwert umwandeln (dafür gibts verschiedene möglichkeiten, wie itoa, strtol, etc.) und dann den wert in dein array eintragen, dabei den array-index immer eins hochzählen. in der strtok-schleife würde ich noch prüfen, ob immer die richtige anzahl an messwerten pro zeile da ist.
    🙂

    Mein Problem ist, dass ich bisher werder mit dem Befehl fgets noch mit dem Befehl strtok gearbeitet habe und daher nicht genau weiß wie ich das anwenden muss. Daher wäre für mich ein Stück code sehr hilfreich

    Dave



  • -Dave_ schrieb:

    Mein Problem ist, dass ich bisher werder mit dem Befehl fgets noch mit dem Befehl strtok gearbeitet habe und daher nicht genau weiß wie ich das anwenden muss.

    http://www.opengroup.org/onlinepubs/000095399/
    oben links in der ecke ist eine suchbox. gibt dort einfach den namen des gewünschten befehls ein, und du bekommst eine beschreibung.
    🙂


Anmelden zum Antworten