Einzelnen Beitrag anzeigen

Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#21

Re: Datei mit TStream kopieren

  Alt 22. Nov 2007, 19:14
so ich hab das jetzt mal umgemodelt, also das selbe was ich mit streams gemacht hab auf untypisierte Dateien und Blockread/Blockwrite umgebaut.

Delphi-Quellcode:
var FInput,FOutput: File;
    i, buffersize,transferred:integer;
    buffer:array of Byte;
begin
  buffersize:=strtoint(edit3.Text);
  AssignFile(FInput,edit1.Text);
  Reset(FInput,1);

  AssignFile(FOutput,edit2.Text);
  Rewrite(FOutput,1);

  setlength(buffer,buffersize);
  for i:=1 to floor(FileSize(FInput) / buffersize) do
  begin
    Blockread(FInput,buffer[0],buffersize,transferred);
    Blockwrite(FOutput,buffer[0],buffersize,transferred);

    Seek(FInput,i*buffersize);


     //Status
    Progressbar1.Position:= 100*i*buffersize div FileSize(FInput);
    label2.caption:=inttostr(i*buffersize) +' / '+ inttostr(FileSize(FInput));
    Application.ProcessMessages;
  end;

  Progressbar1.Position:=100;
  label2.caption:=inttostr(FileSize(FInput)) +' / '+ inttostr(FileSize(FInput));
Das Ergebnis ist identsich. Statusbar läuft durch. Alle Befehle werden abgearbeitet, aber die Übertragung geht noch lange Zeit nach durchlauf der for Schleife weiter.

Mir fällt jetzt auch nix weiter mehr ein. Falls noch jemand eine Idee hat, her damit, ansonsten werd ich das Projekt begraben.
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat