Du musst den Stream in Base64 umwandeln, dann hast du ein 3:4 Verhältnis (3 Bytes RAW => 4 Bytes BASE64) und aus deinen 7KB sollten dann so ca. 9-10KB werden.
Ein kleiner Tip noch am Rande:
Ich erstelle mir immer Klassen, die exakt die Struktur wiederspiegelt, die ich in eine Schnittstelle hineingebe, bzw. von dort engegennehme (ein DataTrasnferObject).
Ich verbiege mir meine Business-Klassen nicht derart, dass die der Schnittstelle folgen.
Soll ein Business-Object nun durch so eine Schnittstelle laufen, gibt es dort einen Assembler, der die Konvertierung vom BO zum DTO und auch wieder zurück vornimmt.
Delphi-Quellcode:
TFooBO = class
property RTFText: string; // RTF-Text
end;
TFooDTO = class
property RTFData: string; // RTF komprimiert und als BASE64 kodiert
end;
TFooAssembler = class
function Convert( AFooBO: TFooBO ): TFooSTO; override;
function Convert( AFooDTO: TFooSTO ): TFooBO; override;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)