ok es geht! Nun das Trennen:
Delphi-Quellcode:
procedure TForm1.Trennen;
var
lStream: TStream;
lStartPos: Int64;
lDataSize: Cardinal;
TextStream, JPEGStream: TMemoryStream;
bildchen: tjpegimage;
begin
lStream := TFileStream.Create('meinStream.ampstr', fmOpenRead);
try
// Länge lesen
lStream.Read(lDataSize, sizeOf(lDataSize));
TextStream := TMemoryStream.Create;
TextStream.Size := lDataSize;
// Text auslesen
lStream.Read(TextStream.Memory, lDataSize);
memo2.Lines.LoadFromStream(TextStream);
TextStream.Free;
// Bild laden
lStream.Position := sizeof(lDataSize) + lDataSize; // Diese Zeile sollte weggelassen werden können, da der Stream ja schon die richtige Position hat.
// Länge lesen
lStream.Read(lDataSize, sizeOf(lDataSize));
JPEGStream := TMemoryStream.Create;
JPEGStream.Size := lDataSize;
// Text auslesen
lStream.Read(JPEGStream.Memory, lDataSize);
bildchen:= tjpegimage.Create;
bildchen.LoadFromStream(JPEGStream);
bildchen.SaveToFile('./bildnew.jpg');
JPEGStream.Free;
bildchen.Free;
finally
lStream.Free;
end;
end;
Da kommen nen paar fehler:
bei:
lStream.Read(TextStream.Memory, lDataSize);
lStream.Read(JPEGStream.Memory, lDataSize);
kommt als Fehler
Code:
[DCC Fehler] Unit1.pas(69): E2197 Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
Hat jemand eine Lösung?