Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

Re: TCP pakete bauen + senden

  Alt 28. Sep 2007, 18:00
Zitat von Innos:
jetzt müsste ich aber ein DATA stream senden, das 1049 Bytes groß ist und das aus lauter verschiedenener unlesbare zeichen enthält 0o wenn ich das mit sendtext() versuche klappt es nicht, da diese zeichen nicht zu einem string erkannt werden
Das ist kein Problem. Das Gute an dem (Ansi-)String in Delphi ist, dass er beliebige Daten (auch $00) aufnehmen kann und dass er dynamisch verwaltet wird.
Beispiele:
Delphi-Quellcode:
var s, t:string; x : double;
begin
   s:= #27'[w'; // Escape Sequence für Drucker
   s:= #0#0#0#0'test'#0; // String mit Hex Nullen drin (C-Compiler hätten da Probleme mit)
   s:= #$F2#$A0#$01#$05; // wirklich beliebiger Inhalt (könnten sogar Maschinebefehle sein)
   s:= StringOfChar(#$FF, 512) + s; // so spart man Schreibarbeit
   // wenn ein String länger als 80 (Limit ist 255) Zeichen ist
   // sollte man die Zeilen umbrechen und die Teilstrings mit + verketten
   s:= 'ein ganz langer string.................................................'+
       'der hier weitergeht';

   x := 3.14;
   // mit SetString kann man beliebige binäre Daten in einen String reinpacken
   SetString(t, PChar(@x), sizeof(x));

   // von Stream => String
   SetLength(s, stream.Size); // Speicherplatz im String reservieren
   stream.ReadBuffer(s[1], Length(s));
Es gibt für einen AnsiString nur das Limit vom max 2GB; das sollte aber kein Problem sein.
Andreas
  Mit Zitat antworten Zitat