Hallo,
ich würde gerne eine Binärdatei auslesen.
Das ganze soll (muss nicht) mit der Klasse fstream erfolgen. Sollte
jedoch so effizient wie möglich gestaltet werden.
Die Binärdatei ist wie folgt aufgebaut:
__time64_t, double, double, char,
__time64_t, double, double, char,
...
Später sollen 4 Arrays erstellt werden in denen alle Daten gespeichert
werden.
Einen einzelnen Wert auslesen klappt wie folgt:
1 | __time64_t Zeitstempel = 0;
|
2 | datei.read(reinterpret_cast<char*>(&Zeitstempel), sizeof(Zeitstempel));//Ließt Zeit aus
|
Die Größe der Binärdatei beläuft sich im Moment auf 52MB. Um nun zu
vermeiden, dass n Zugriffe auf die Festplatte durchgeführt werden wollte
ich ersteinmal alle Daten die ich benötige auf einmal in einen String
schreiben. Das sortieren in Arrays wollte ich dann von diesem String aus
machen. Siehe Quellcode:
1 | Daten = new char[Größe];
|
2 | __time64_t Zeitstempel = 0;
|
3 | datei.read(reinterpret_cast<char*>(&Zeitstempel), sizeof(Zeitstempel));//Ließt Zeit aus
|
4 | datei.read(Daten, Größe);//Kopiert alle Daten in einen String
|
5 | Zeitstempel = reinterpret_cast<__time64_t>(&Daten[0]);//Ließt Zeit nicht aus
|
Das Problem ist dass ich die Daten nicht mehr aus dem String gelesen
bekomme.
Hat jemand eine Idee woran das liegen könnte?