Einzelnen Beitrag anzeigen

Cyrus1972

Registriert seit: 21. Jul 2003
6 Beiträge
 
#1

Array of pChar Abspeichern

  Alt 1. Sep 2003, 17:38
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
--
Windows kann alles dank 32bit.
Nach 32 Bit, glaube ich auch das ich alles kann
  Mit Zitat antworten Zitat