Array auf Festplatte Speichern
-
Hallo !
Simple Frage die mir nicht ganz einfach erscheint,Ich habe ein dynamisches Array in C++ erschaffen und gefüllt.
Soweitsogut,.. nun möchte ich aber eben genau DIESES array
auf der Festplatte wieder speichern in einer Datei !?Gibt es hierbei etwas vergleichbares zu TMemoryStream/TFileStream ?
Eine einzelne variable zu speichern stellt kein problem da, aber ein komplettes array schon ?
-
Hallo
Nein du brauchst ja nur eine Schleife um alle Elemente des Arrays in den Stream zu schieben und auch wieder auszulesen. Haben deine Arrayelemente immer feste Größen (also int oder float zum Beispiel) ist das ganz einfach. Wenn nicht must du eben für jedes Element noch die Größe mitschreiben, wobei Typen wie AnsiString noch eine extra Behandlung brauchen.
bis bald
akari
-
Ja, das geht mit TFileStream.
Der Speicherblock eines Arrays ist zusammenhängend. Du kennst die Startadresse und die Größe (in Abhängigkeit vom Datentyp). Wenn das Array eine variable Größe haben kann, mußt Du am Anfang die Dimensionen in den FileStream schreiben, ansonsten kannst Du direkt den Speicherbereich in den FileStream schreiben.
Beim Lesen liest Du dann erst die Dimensionen wieder aus, erzeugst mit diesen Werten das Array in der entsprechenden Größe und überschreibst dessen Inhalt einfach mit den Folgedaten aus dem Filestream.[EDIT] Ok, für nicht PODs ist akaris vorgehensweise die Korrekte.