Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi type array of array speichern (https://www.delphipraxis.net/5321-type-array-array-speichern.html)

Snoop007 1. Jun 2003 18:54


type array of array speichern
 
Hi,
ich würde gern
Delphi-Quellcode:
type
  TArrayX = array of array of string[255];
in eine datei speichern und den inhalt auslesen
mein speichern sieht so aus
Delphi-Quellcode:
...
type
  TDatenSchreiben = class
    Datenschreiben : TArrayX;
  end;
...
procedure TFWDaten.SaveToFile;
var
  xFile : File of TDatenSchreiben;
  x : TDatenSchreiben;
begin
  x := TDatenSchreiben.Create;
  x.Datenschreiben := FDatenErstellt.value;
  FDatenErstellt.FTArray := nil;
  AssignFile(xFile,FFileName);
  rewrite(xFile);
  seek(xFile,length(x.Datenschreiben));
  Write(xFile,x);
  CloseFile(xFile);
  x.Free;
end;
und das laden
Delphi-Quellcode:
procedure TFWDaten.LoadFromFile;
var
  xFile : File of TDatenSchreiben;
  x : TDatenSchreiben;
begin
  x := TDatenSchreiben.Create;
  FDatenGeladen := TStringArray.Create;
  AssignFile(xFile,FFileName);
  reset(xFile);
  seek(xFile,1);
  Read(xFile,x);
  FDatenGeladen.value := x.Datenschreiben;
  x.Free;
  CloseFile(xFile);
end;
leider geht das nicht so wie ich es mir erhofft habe,
kann ich das überhaupt so machen; oder ist das blödsinn und sollte das ganze lieber lassen ?!

jbg 1. Jun 2003 19:10

Kennst du den Unterschied zwischen Zeiger und eigentlichen Daten?
Vielleicht weißt du auch nicht, das ein dynamisches Array nur ein Zeiger ist. Du schreibst also nur 4 Bytes in die Datei und liest auch genau diese 4 Bytes wieder aus. Ob der Zeiger, den du da einliest noch gültig ist, sei mal dahingestellt. Aber er enthält nicht die Daten, da du sie ja nicht gespeichert hast.

Snoop007 1. Jun 2003 19:21

ja den kenne ich, -> zeiger zeigt auf adresse von daten; daten enthalten werte ;)
aber leider habe ich nicht so die erfahrung mit zeigern um ehrlich zu sein :(

d.h. ich müsste das ganze array durchlaufen, mir die daten holen und diese speichern, schade, ich dachte ich kann das umgehen

danke !
evt. hast du ein gutes tut wie man mit zeigern arbeitet ?

Snoop007 1. Jun 2003 23:04

ich frage mal anders

wie kann ich diese strucktur abspeichern ohne das ich alle unter - elemente in einen string lade und diesen speichere ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf