Ich krieg das Problem nicht gelöst. Wollte es jetzt nochmal mit Buffer Variablen und den Read und Write Funktionen versuchen. Ausserdem wollte ich jetzt das das von lucki empfohlene Byte Array als Speicher nutzen.
Delphi-Quellcode:
var StreamIn, StreamOut:TStream;
i,buffersize:integer;
buffer:array of Byte;
begin
buffersize:=strtoint(edit3.Text);
StreamIn := TFileStream.Create(edit1.text,fmOpenRead);
StreamOut :=TFileStream.Create(edit2.text, fmCreate);
setlength(buffer,buffersize);
for i:=1 to floor(StreamIn.Size / buffersize) do
begin
StreamIn.Read(buffer,buffersize);
StreamOut.Write(buffer,buffersize);
//Status
Progressbar1.Position:= 100*i*buffersize div StreamIn.Size;
label2.caption:=inttostr(i*buffersize) +' / '+ inttostr(Streamin.Size);
Application.ProcessMessages;
end;
{ if StreamIn.Size mod buffersize > 0 then
StreamOut.CopyFrom(StreamIn,StreamIn.size mod buffersize); }
Progressbar1.Position:=100;
label2.caption:=inttostr(StreamIn.size) +' / '+ inttostr(Streamin.Size);
StreamIn.Free;
Streamout.free;
end;
Da schmeisst mich der Compiler aber nach dem ersten Schreibversuch mit einer Zugriffsverletzung raus. Kann jemand helfen?