Hallo zusammen.
Ich habe da Folgenes Problem mit Delphi ich möchte Typisierte Dateien speichern und Einladen, das Abspeichern funktioniert anscheind wunderbar, das einladen jedoch macht mir immer wieder Exeptions wegen Bereichsprüfung oder Fehler bei zugriff auf Speicher.
Hier mal ein Beispiel (Aus dem Kopf)
Delphi-Quellcode:
Type pServer = ^tServer;
tServer = Packed Record
Version : integer;
Servername : string[60];
Bufferlen : integer; // Bufferlänge
DescBuffer : array of PCHar; // Serverbeschreibung
end;
Wenn ich später die server speichern will mit FileWrite scheint der alles richtig abzuspeichern
Und so wird gespeichert
FileWrite(fh,MyServer^.Version,Sizeof(Integer));
FileWrite(fh,MyServer^.Servername,60);
FileWrite(fh,MyServer^.bufferlen,Sizeof(Integer));
FileWrite(fh,MyServer^.DescBuffer,myServer^.Buffer Len)
Jetzt wird es Heftig denn das einladen klappt hier nicht
Und so wird versucht einzuladen
FileRead(fh,MyServer^.Version,Sizeof(Integer));
FileRead(fh,MyServer^.Servername,60);
FileRead(fh,MyServer^.Bufferlen,Sizeof(Integer));
FileRead(fh,MyServer^.DescBuffer,myServer.BufferLe n);
Version,Servername,Bufferlen liest der richtig ein
den Descbuffer (Array of pChar) bekommt er nicht auf die Reihe.
Egal ob ich MyServer^.DescBuffer[0] oder 1 eingebe oder
es mit pChar(myServer.DescBuffer) (Mit und ohne ([])
Wer kann mir bei den Denkfehler weiterhelfen ??
Ich hab es nur ebend aus dem Kopf aufgeschrieben, damit man weiss was in etwa gemeint ist, bin gerade nicht zuhause sondern an einen Fremden PC.
Gruß und danke im Voraus