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.