Einzelnen Beitrag anzeigen

luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#1

Record mit dynamischen Strings versenden

  Alt 23. Okt 2012, 21:15
Delphi-Version: XE2
Hi,

wenn man ein Record per Socket versenden möchte, der Strings enthält, müssen diese ja eine feste Länge haben.
Delphi-Quellcode:
type
  TData = record
    I: Integer;
    R: Real;
    S1: string[50]; //OK
    S2: ShortString; //OK
    S3: string; //geht nicht
  end;

SendBuffer(Socket, Data, SizeOf(Data));
Da die zu versendenden Strings unterschiedlich lang sein können, muss immer der worst-case (bsp. ShortStrings, also 255 Zeichen) angenommen werden. Bei kurzen Strings ist die Datenmenge damit viel größer als nötig.

Natürlich könnte ich alle Strings mit einem Trennzeichen zusammenfassen und dann versenden, diese Lösung erscheint mir aber nicht sonderlich sauber und deshalb wollte ich fragen, ob es eine bessere Lösung gibt ein Record mit dynamischen Strings per Socket zu senden?
  Mit Zitat antworten Zitat