3D-Array in Datei schreiben
-
Hallo,
ich suche nach einem Dateiformat, mit dem man komfortabel ein 3D-Array mit Integers speichern kann und dieses auch wieder auslesen kann.
Das einzige was mir bisher eingefallen ist, wäre, das Array in eine txt oder csv Datei zu schreiben und mit "/" und "%" zu operieren. Das dürfte bei einem Array der Ausmaße 256^3 aber ziemlich schnell hässlich werden. Außerdem würde das ja eine feste Größe vorraussetzen.
Wäre schön, wenn jemand einen Vorschlag hätte!
mfg
-
Das hängt stark vom "Array" ab. Ist es ein statisches Array mit 3 Dimensionen? Ist es ein dynamisches Array, bei dem die Daten verteilt im Speicher stehen? Oder ein dymaisches Array, bei dem die Dimensionen auf zusammenhängenden Speicher gemapt werden? Wenn ja, wie?
Weiterhin? Soll die Datei menschenlesbar sein, oder darf sie auch binäre Daten enthalten? Wenn ja, müssen die Daten auf verschienden Plattformen lesbar sein, oder nur auf einer?
-
Die Datei soll vom Programm ausgelesen, der Inhalt dort bearbeitet und auch wieder abgespeichert werden können.
Wünschenswert wäre eine variable Größe, wobei aber immer alle Dimensionen gleich groß sind. Zur Not geht aber auch eine feste Größe.
Die Datei muss nicht menschenlesbar sein. Plattformunabhängigkeit wäre natürlich toll, Lauffähigkeit unter Windows würde aber reichen.
Das zu speichernde Array sieht also etwa so aus:
int array[256][256][256];
-
tr0x schrieb:
int array[256][256][256];wenn das array einigermaßen voll ist, nimm unter windows CreateFileMapping und unter linux mmap. ist zwar ein wenig #ifdef beim mappen dabei, aber die verwendung dann ist extrem angenehm und schnell und braucht auch keinen os-spezifischen code mehr.