Hi zusammen,
ich habe im Moment in etwa folgende Funktion:
Delphi-Quellcode:
class procedure TSuper_Api.DoDecode(
const sBase64Daten : String;
var rawData : RawByteString
);
var
baseStream : TStringStream; // Base64-codiert
tempStream : TStringStream; // Ergebnis
begin
SetLength(rawData, 0); // Nur zur Sicherheit
tempStream := TStringStream.Create(); // Ergebnis
try
baseStream := TStringStream.Create(sBase64Daten);
tempStream.Clear();
try
TNetEncoding.Base64.Decode(baseStream, tempStream);
rawData := RawByteString(tempStream.DataString);
finally
baseStream.Free();
end;
finally
tempStream.Free();
end;
end;
Das funktioniert wunderbar, aber der cast von "RawByteString(tempStream.DataString)"
erscheint mir falsch. Ich habe zumindest das Gefühl, dass ich noch was "falsch" mache
oder zumindestens "nicht schön".
Die Lösung mit den StringStreams ist ja so wunderbar einfach und wie gesagt
funktioniert das ja auch alles, aber es gibt dafür doch sicherlich einen
"richtigeren" Weg!? Geht da was über den MemoryStream? Oder hat der StringStream
Funktionen um die "Daten" als RawByteString abzugreifen, vielleicht über "tempStream.Bytes"?
Ich hoffe ihr wisst, was ich meine!
Liebe Grüße und danke schonmal für's lesen!
Incocnito