Die Änderung ist nur das ändern von < auf <= ? Weil einen anderen Unterschied hab ich nicht gefunden
Oder meinst du ich soll alles andere aus der Funktion rausnehmen? Entschuldige bitte, aber irgend wie hab ich das ganze nicht so richtig verstanden
Falls du die Zeit und last hast, könntest du mir bitte die ganze Funktion zeigen?
Zur Zeit sieht meine Funktion so aus:
Delphi-Quellcode:
function readNextFromContainer(const Container : TStream) : TStream;
var
length : Integer;
begin
if Container.Position + sizeof(Integer) < Container.Size then
begin
Container.Read(length, sizeof(Integer));
if Container.Position + length <= Container.Size then
begin
result := TMemoryStream.Create;
result.CopyFrom(Container, length);
end else result := nil;
end else result := nil;
end;
Mit der Änderung aus deiner letzten Nachricht.
Oder liegt das vielleicht an dem Inhalt? Ich mußte leider ein .size weglassen, ich dachte es ist zu viel? Weil mir auch dir Fehlermedlung sagte, das er da was anderes erwartet:
Delphi-Quellcode:
procedure addToContainer(const Stream : TStream; const Container : TStream);
begin
if assigned(Stream) and assigned(Container) then
begin
Container.Write(Stream, sizeof(Integer));
Container.CopyFrom(Stream, 0);
end;
end;
Ich meine die Zeile mit "Container.Write(Stream, sizeof(Integer));", deine Variante mag er nicht wirklich mit "Container.write(Stream.Size, sizeOf(Integer));"