Entwickler-Ecke
Dateizugriff - array in datei speichern?
olum99 - Di 06.05.03 14:39
Titel: array in datei speichern?
kann ich ein komplettes array wenn möglich 3dimensional mit einem (hoffentlich simplen :wink: ) befehl in eine datei speichern???
wenn nicht, kann mir einer ne gute methode sagen, wie man das noch machen könnte?
Klabautermann - Di 06.05.03 15:23
Hallo,
ganz einfach wird das nicht. Aber genaueres kann man da erst sagen, wenn du ein Paar Informationen über das Array und die Datrin enthaltenen Daten mitteilst.
Welchen Datentyp haben z.B. die Array Elemente?
Hat das Array besondere Eigenschaften (z.B. immer gleichviele Elemente auf der X, Y, und Z Achse)?
Gruß
Klabautermann
olum99 - Di 06.05.03 19:17
das array ist statisch, integer, hat momentan [0..10,0..9,1..4] felder.
ich stell grade fest, dass es so einfach wirklich nich zu sein scheint.
beim 2dimensionalen ging das ganz einfach so
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure TForm1.Button2Click(Sender: TObject);
var f : TFilestream; b : boolean; begin b:=true; try f:=TFilestream.Create('d:\eigene dateien\test.txt',fmCreate); except Showmessage('Fehler beim Öffnen/Anlegen der Datei'); b:=false; end; if b then begin try
f.Write(u,sizeof(u)); except Showmessage('Fehler beim schreiben in die datei'); end; f.Free end;
end; |
scheint aber mit 3 dimensionen nicht mehr hinzuhaun.
wulfskin - Di 06.05.03 21:43
Komisch komisch. Der Array hat ja eine feste Größe, deshalb kannst du ihn eigentlich so speichern wie du es gemacht hast. Bist du sicher das es so nicht geht?
Ansonsten mit 3 Variablen durchgehen und nacheinander aus- und einlesen. Da die Arrays ja statisch sind, sollte das kein Problem sein, oder sind sie etwas dynamisch?
Gruß wulfskin!
Alni - Mi 07.05.03 13:24
Fuer den Fall das die Arrays dynamisch sein sollen einfach am Anfang drei variablen speichern die die Groesse in jeder Dimensionsrichtung speichern.
Und anschliessend so wie Wulfskin gesagt mit 3 Varibalen durchgehen und schreiben. Also etwa so
Quelltext
1: 2: 3: 4: 5: 6: 7:
| f.write(i,sizeof(i)); f.write(j,sizeof(j)); f.write(k,sizeof(k)); for iz:=0 to i do for jz:=0 to j do for kz:=0 to k do f.write(a[iz,jz,kz],sizeof(a[iz,jz,kz])); |
i,j,k sind die groessen, iz,jz,kz sind die Zaehlervariablen, a das array und f der Filestream
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!