Einzelnen Beitrag anzeigen

Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

Re: eine Frage zu dyn . Array im Netzwerk

  Alt 14. Apr 2004, 19:59
SizeOf(rec) ergibt 8, da ChatChannels nur ein Pointer auf das Array ist. Ihr übertragt somit also nur diesen Pointer, aber nicht den Inhalt des Arrays.

Delphi-Quellcode:
type
  TChatChannel = string[20];
  TDatenPack = record
     ChatChannels: array of TChatChannel;
     Index2: Integer;
  end;

procedure SaveDatenPackToStream(Pack: TDatenPack; AStream: TStream);
begin
  AStream.Write(Pack.Index2, SizeOf(Integer));
  AStream.Write(Pack.ChatChannels[0], SizeOf(TChatChannel) * Pack.Index2);
end;

procedure LoadDatenPackFromStream(AStream: TStream): TDatenPack;
begin
  AStream.Read(Result.Index2, SizeOf(Integer));
  SetLength(Result.ChatChannels, Result.Index2);
  AStream.Read(Result.ChatChannels[0], SizeOf(TChatChannel) * Result.Index2);
end;
MfG,
Tryer
  Mit Zitat antworten Zitat