BlockRead和BlockWrite读写文件

var 
 FromF, ToF: file; 
 NumRead, NumWritten: Integer; 
 Buf: array[1..2048] of Char; 
begin 
 if OpenDialog1.Execute then begin 
   AssignFile(FromF, OpenDialog1.FileName); 
   Reset(FromF, 1); { Record size = 1 } 
   if SaveDialog1.Execute then { Display Save dialog box} 
   begin 
     AssignFile(ToF, SaveDialog1.FileName); { Open output file } 
     Rewrite(ToF, 1); { Record size = 1 } 
     Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF)) 
+ ' bytes...'); 
     repeat 
       BlockRead(FromF, Buf, SizeOf(Buf), NumRead); 
       BlockWrite(ToF, Buf, NumRead, NumWritten); 
    until (NumRead = 0) or (NumWritten <> NumRead); 
    CloseFile(FromF); 
    CloseFile(ToF); 
  end; 
end; 
end; 

你可能感兴趣的:(BlockRead和BlockWrite读写文件)