Thema: Delphi Array versendbar?

Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Array versendbar?

  Alt 2. Jan 2008, 21:45
Bei dynamischen Arrays geht das so nicht. Da muss das dann heißen :
Client.WriteBuffer(Array[0], length(Array)*sizeof(<Array-Elementtyp>); Bei mehrdimensionalen, dynamischen Arrays ist das wieder anders. Ein solches Array ist nämlich eigentlich ein Array von Pointern, die (je nach Dimension) wieder auf weitere Arrays zeigen. Erst die Arrays der letzten Dimension enthalten dann die eigentlichen Array-Elemente. Da muss man dann mithilfe von for-Schleifen das ganze auftrennen. Also bei einem array mit den Längen a und b sähe das so aus:

Delphi-Quellcode:
Client.WriteInteger(length(Array)); //Damit der Emfpänger weiß, wie viele Werte durchkommen
for I:=0 to high(Array) do
  Client.WriteBuffer(Array[I][0], length(Array[I])*size(<Array-Elementtyp>));
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat