![]() |
Array- Variable in Datei speichern
Hallo, folgendes:
Ich will ein zweidimensionales, dynamisches Array
Delphi-Quellcode:
in eine Datei speichern. Meine Speicherprozedur sieht folgendermaßen aus
type aRaumposition = array of array of Boolean;
Raumposition: aRaumposition;
Delphi-Quellcode:
Wie krieg ich jetzt die private Variable Raumposition von TForm1 gespeichert? FRaum ist ja eine Instanz und wird über die Prozedur WriteToFile gespeichert, aber wie funzt das bei Variablen?
procedure TForm1.Projektspeichern1Click(Sender: TObject);
var wrProjekt: TWriter; i: integer; begin RegisterClass(TRaum); SaveDialog.DefaultExt:='map'; SaveDialog.Filter:='Alle Dateien |*.*|Map-Files (*.map)|*.MAP'; SaveDialog.FilterIndex:= 2; if SaveDialog.execute then begin strFile := TFileStream.Create(SaveDialog.FileName, fmCreate); wrProjekt := TWriter.Create(strFile, 2000); wrProjekt.WriteString(FRaum.ClassName); // Raumklasse speichern FRaum.WriteToFile(wrProjekt); // Raumdaten speichern wrProjekt.destroy; //Writer freigeben strFile.destroy; // Stream freigeben end; end; Danke für eure Hilfe. |
Re: Array- Variable in Datei speichern
Das Array wirst du nicht als gesamtes auf einmal schreiben können, sondern nur Element für Element.
Da hast du zwei Möglichkeiten. Die erste ist die Anzahl der Elemente der einzelnen Dimensionen als Integer schreiben und dann mit WriteBoolean die einzelnen Werte schreiben. Die andere ist mit Writer.WriteBeginList/Writer.WriteEndList und dann Reader.ReadListBegin/while not Reader.EndOfList/Reader.ReadEndList (oder so ähnliche Namen). |
Re: Array- Variable in Datei speichern
Ok. Das is natürlich ne Möglichkeit. Da kommt mir die Frage:
Wie bekomme ich die Größe des Arrays raus? Also bei Raumposition[i,j] das i und das j. Irgendwie mit getLength oder so?? |
Re: Array- Variable in Datei speichern
Delphi-Quellcode:
Length(a) = Anzahl der ersten Dimension
a: array of array of X;
Length(a[x]) = Anzahl der zweiten Dimension für das x-te Element
Delphi-Quellcode:
for i := 0 to Length(a) - 1 { =High(a) } do
for j := 0 to Length(a[i]) - 1 { =High(a[i]) } do Writer.WriteBoolean(a[i, j]); |
Re: Array- Variable in Datei speichern
Big THX :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz