@ all!
Ich möchte in einem Stream (FileStream) was löschen, quasi von x bis y soll raus.
Momentan mach ich das so:
Delphi-Quellcode:
TempStream := TMemoryStream.Create;
try
{------FS in TempStream kopieren---}
FS.Seek(0, soFromBeginning);
TempStream.CopyFrom(FS, FS.Size);
{------FS "leeren"-----------}
FS.Free;
FS := TFileStream.Create(BaumPfad, fmCreate);
{------Alles außer Ausschnitt zurückkopieren----}
TempStream.Seek(0, soFromBeginning);
FS.CopyFrom(TempStream, StartPos);
{------Größe des Ausschnitts überspringen------}
TempStream.ReadBuffer(Len, SizeOf(Len));
TempStream.Seek(Len, soFromCurrent);
TempStream.ReadBuffer(Size, SizeOf(Size));
TempStream.Seek(Size, soFromCurrent);
{------Daten hinter dem Ausschnitt wieder anfügen------}
FS.CopyFrom(TempStream, TempStream.Size-TempStream.Position);
finally
TempStream.Free;
end;
FS ist der FileStream
TempStream ist ein MemoryStream
Ich mach's momentan mit Free und Create, aber da gibt's doch sicher was besseres, oder?
Danke schonmal!